>>>>>        Any reason you're still using MyISAM tables? Innodb is almost as
>>>>> fast
>>>>> or much much faster than MyISAM in nearly every way these days.
>>>>
>>>> Can multiple processes be utilized for mysql like they are for
>>>> apache2?  Perhaps not since it's a database?
>>>
>>>        Mysql is multithreaded and spawns a thread for each connection.
>>> Try a
>>> ps -efL and you should see a number of Mysql threads. However that is
>>> part
>>> of the problem with MyISAM. It throws a giant table lock blocking all
>>> other
>>> threads until the SQL statement is complete. Innodb uses row locks which
>>> allows the other threads to use the table.
>>>
>>>        As far as moving to Innodb tables it's actually easy, but with a
>>> number of caveats. I'd lower your Apache max clients, tweak my.cnf, and
>>> runs
>>> some load tests before getting deep into Mysql. When you're ready I'd go
>>> about this way.
>>
>> apache MaxClients has been lowered to 50 which is a shame because I
>> have 30+ separate images on each of my pages and that number can not
>> be reduced.  This means I may not be able to serve more than 1 full
>> page at a time.
>
>        This is wrong.

MaxClients is defined as "the limit on the number of simultaneous
requests that will be served".  If each of my pages requires 30
requests in order to be fully served, I don't think I'll be able to
fully serve more than one page at a time.

>>> 1. Make backups first.
>>> 2. See if you have any full text fields. Tables with full text fields
>>> will
>>> have to remain MyISAM.
>>
>> Many of my tables have one or more fields defined as TEXT out of
>> laziness.  Should I instead come up with an appropriate char(N)
>> declaration for each?  Can N go as high as necessary?
>
> TEXT fields don't matter, FULL TEXT indexes do. Sorry my mistake.

I don't have any FULL TEXT.  Since TEXT is alright, I will be making
the switch to InnoDB very soon.

>> OK, just leave key_buffer at the default 16M?
>
>        No. Make key_buffer 256M and then restart Mysql or update it from the
> commandline. You're starving Mysql for resources. Fix this first. Then you
> can mess around with tables and engines.

Yep, I increased key_buffer when you told me to previously.

- Grant

Reply via email to