Brent Baisley wrote: > Well, there is the ideal setup, which requires intimate knowledge of the > database, lots of disks and extra administration. And then there is the > easy setup. Ideally you don't want to have any "hot" disks which will > cause contention. This requires you to place your busy tables (read or > write) on separate disks so that one drive doesn't get most of the > activity. You really only need to do this for your large tables. But as > your system grows, it can be difficult to do this manual tuning. I don't > recommend this on "smaller" systems and would really only recommend it > on systems where the OS allows you to expand file systems or migrate > them while they are in use. I know AIX can do this and I'm sure Solaris > (with Veritas) and a few others can. > > The easy option, and the one I would recommend, is setting up a RAID > using something like RAID 0 (striping) which will give you good read and > write performance but no safety. Or RAID 1 (mirrored), which will give > you good read performance, but poor write performance. RAID 0 and 1 are > the least expensive to implement and can be done in software. RAID 5 > will give you good read and write as well as safety, but takes a minimum > of three disks. If you are using a hardware based RAID, then there > typically is no write performance hit for mirrored drives. > When striping is used (RAID 0 and 5), your data is split up into small > chunks and spread across disks, so it's unlikely that you would get a > hot disk. More disks will give you better performance. For optimal RAID > setup you want to set the optimal stripe size. If you are dealing with > large files, like graphics, you want to setup a large stripe size so > that you can take advantage of read ahead settings on the drive/os. For > databases, you probably want to have a small stripe size, but not > smaller than the size of your largest record size. The optimal setup > would be to have a stripe size that is the same size as your database > record. In real life this isn't really feasible though. Striping is the > easiest way to go and will give you very good performance. > > The other thing to watch out for is the performance of the card you have > the drives hooked up to. Just like you wouldn't want to have a hot > drive, you don't want to have a hot card. If you are using SCSI, you > really wouldn't want to have any more that 6 drives hooked up to one > card. Even if the card could theoretically handled the max output of the > combined drives. There is addressing overhead, and protocol overhead, in > SCSI that becomes more significant with the more drives you add. If you > really want to get technical, the SCSI ID of a drive also has an affect > on performance. But this is pretty minimal. > If you are doing strictly mirroring, you want to have at least two cards > and separate your drives between your cards so that your mirrored drives > are on separate cards. That also gives you safety if a card fails. This > used to be called duplexing, but I haven't heard that term used for > storage in a while. Some SCSI cards do have more than one independent > bus, this would also work for mirroring. > > On Thursday, October 3, 2002, at 04:26 PM, Gary Traffanstedt wrote: > > > sql, query > > > > I have a dilemma and maybe you can help. I'm wanting to improve my > > disk > > performance and I'm wondering if I should go with Raid 10 or if I should > > simply mirror the drives so that I have redundancy and then put some of > > my > > tables on one drive and some on the other. Or the third option is to > > put the > > tables on one drive and the logs on another drive. Ultimately, what is > > going > > to give me the best performance? Should I use 3 drives (mirrored so 6 > > actual > > drives) and put half of the tables on drive 1, half on drive 2, and > > logs on > > drive 3? > > > > TIA, > > Gary > > > > --------------------------------------------------------------------- > > Before posting, please check: > > http://www.mysql.com/manual.php (the manual) > > http://lists.mysql.com/ (the list archive) > > > > To request this thread, e-mail <[EMAIL PROTECTED]> > > To unsubscribe, e-mail <mysql-unsubscribe- > > [EMAIL PROTECTED]> > > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > > > > > -- > Brent Baisley > Systems Architect > Landover Associates, Inc. > Search & Advisory Services for Advanced Technology Environments > p: 212.759.6400/800.759.0577 > > --------------------------------------------------------------------- > Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > > To request this thread, e-mail <[EMAIL PROTECTED]> > To unsubscribe, e-mail <[EMAIL PROTECTED]> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
Brent, You mentioned placing the busy tables on seperate disks. I didn't think in mysql that you could specify where the datafiles foreach table"live". I know you could symlink (linux/unix) the files, but I remember seeing something about issues recovering a database with symlinked files. I'd really like to do this with mysql since I/O is the biggest bottleneck we have. Thanks! walt --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php