In MySQL 5.0.19 the meaning of innodb_thread_concurrency variable was changed (yeah, again).
Now innodb_thread_concurrency=0 means unlimitied count of concurrent threads inside InnoDB. It’s logical, but there was long way. In MySQL versions below 5.0.8 for unlimited threads you had to set innodb_thread_concurrency over 500 (and default value for innodb_thread_concurrency was 8 ).
Starting with MySQL 5.0.8, the default value is 20, and concurrency checking will be disabled if the setting is greater than or equal to 20. But due to different bugs, in 5.0.19 the default value is 8 again, and 0 disables concurrency checking.
So if you used innodb_thread_concurrency over 500 (or default value in 5.0.8-5.0.18), don’t forget to change it to 0 in new versions, otherwise you can experience leaps of performance.
About the Author
Vadim Tkachenko
Vadim Tkachenko co-founded Percona in 2006 and serves as its Chief Technology Officer. Vadim leads Percona Labs, which focuses on technology research and performance evaluations of Percona’s and third-party products.
Vadim’s expertise in LAMP performance and multi-threaded programming help optimize MySQL and InnoDB internals to take full advantage of modern hardware.
He also co-authored the book High Performance MySQL: Optimization, Backups, and Replication 3rd Edition.