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