> >Hi, > >Here is what I understand: >your queries are already very optimized, you have already played >with database scheme and application optimisations so there is little >chance to find any gain there. >Your setup seems to be right according to disc I/O and RAM since >all indexes fit in RAM and you are not doing much disc I/O. >So, your 4 CPUs should be used and, since it is not the case, the only >reasons I can figure out are: > >- Some of your queries are locking the tables. It seems strange >since you specify that only SELECTs are run during the day. >Anyway, have you checked that this is not the case with >'mysqladmin processlist' ?
Yes. Only SELECTs are running. Early on in the month the server is mostly idle, as there is less data in the tables than at the end of the month. During this idle time I am able to do all of the tests that I need to do, including restricting all outside access to ensure only my SELECTs are running. > >- If you do have table locking problems, you should consider switching >from MyISAM to a table format that support row level locking as InnoDB >(but I have never tried that myself, I am still using MyISAM on our servers). Right. I have installed InnoDB on my development desktop machine (a Sparc 20 w/ Solaris 2.6) and I am happy with its speed. However, until just a week or so again InnoDB did not support files larger than 4 gig, which was a problem. We will be switching to InnoDB once we get this CPU problem sorted. One major drawback to InnoDB that I have noticed is the limited database size. With a MyISAM table, it grows as needed. Meaning that during the first part of the month, this table is really small, which allows for data processing to be really really fast. In the order of 3 orders of magnitude faster than the end of the month. With InnoDB, your database size is set, and if you have 3 megs of data in it, or 3 gigs, it will take the same amount of time to run. Granted: if there ARE 3 gigs, it will run a lot faster than 3 gigs of MyISAM database tables. >- According to MySQL manual, there is a Solaris specific parameter in my.cnf: >'thread_concurrency'. Have you checked this parameter ? >(I have no experience with this parameter since I have not used >Solaris lately and I am using MySQL with Linux). Yes, the docs say to set this to be double that of the CPUs. The my-huge.cnf file that comes with MySQL has this set to 8 by default. My current my.cnf file uses all of these values, doubled. So my thread-concurrency is currently set to 16. I will experiment more with this value, and see what results it yields by just modify it alone. I appreciate the help, it looks like I will just need to start experimenting with individual values and see what gives me the best results. Thanks again -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Aaron Williams [EMAIL PROTECTED] Black Raven.com http://www.backraven.com =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= --------------------------------------------------------------------- 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