Just came across this forum post of MySQL that looks to be a gold mine of information related to performance tuning MySQL.

For reference I am copying and pasting the full thing here though all credit goes to the above.

Book: High Performance MySQL (2nd Edition) http://www.highperfmysql.com/ MySQL Performance Tuning – Best Practices: http://jpipes.com/presentations/perf_tuning_best_practices.pdf

MySQL Index Tuning and Coding Techniques for Optimal Performance: http://jpipes.com/presentations/index_coding_optimization.pdf

Web Performance and Scalability with MySQL: http://develooper.com/talks/

PHP Applications: 120 Performance Tuning screws for MySQL http://blog.ulf-wendel.de/?p=268 http://blog.ulf-wendel.de/?p=163

MySQL Server Variables http://forge.mysql.com/wiki/ServerVariables

MySQL Server Variables – SQL layer or Storage Engine specific http://www.mysqlperformanceblog.com/2006/06/08/mysql-server-variables-sql-layer-or-storage-engine-specific/

“Show profile” + “Information_schema.profiling” http://blogs.mysql.com/peterg/2008/11/06/show-profile-information_schemaprofiling/ PeterZ presentations: http://www.mysqlperformanceblog.com/mysql-performance-presentations/

Using MMM to ALTER huge tables http://www.mysqlperformanceblog.com/2008/03/27/using-mmm-to-alter-huge-tables/

MySQL File System Fragmentation Benchmarks http://www.mysqlperformanceblog.com/2008/03/21/mysql-file-system-fragmentation-benchmarks/ http://www.mysqlperformanceblog.com/2008/03/18/working-with-many-files-and-file-system-fragmentation/

Finding/killing long running InnoDB transactions with Events http://www.markleith.co.uk/?p=730

Using the event scheduler to purge the process list http://datacharmer.blogspot.com/2008/10/using-event-scheduler-to-purge-process.html

kill_run_aways Stored Proc http://forge.mysql.com/tools/tool.php?id=106

Yoshinori: Tracking long running transactions in MySQL http://yoshinorimatsunobu.blogspot.com/2011/04/tracking-long-running-transactions-in.html

How to debug long-running transactions in MySQL http://www.mysqlperformanceblog.com/2011/03/08/how-to-debug-long-running-transactions-in-mysql/