We have seen a few instances where upgrades of MySQL 5.1 to 5.5
have resulted in poor performance when using default values.
After investigation it would appear that the main culprit appears
to be the innodb_thread_concurrency setting.
In MySQL 5.1 the default was 8, while in MySQL 5.5, the default
was changed to 0 (unlimited).
So what does innodb_thread_concurrency do and why would it cause
performance issues?
The value given to innodb_thread_concurrency sets the number of
simultaneous threads the InnoDB engine will create. If
there are more jobs waiting to be processed than there are
available thread slots, these jobs will be made to wait until a
thread slot becomes free. So on the face of it, making this
unlimited sounds like a good idea - so you won't have any jobs
waiting on thread slots.
In an ideal world, unlimited is good. In the real world,
unlimited doesn't exist. CPUs only have …
[Read more]