Efficient MySQL Performance bird

Efficient MySQL Performance
20 years of MySQL performance, written for software engineers

O'Reilly ⟫
Amazon  ⟫
Goodreads ⟫


Redirected from another link? That link points to something archived. Rather than leaving you stranded on a 404 page, this archive provides alternatives.


The original tools I wrote (circa 2004–2008) are deprecated, unmaintained, and unsupported. Use an alternative tool.

Original ToolAlternatives
mysqlslapt-query-digest, PMM, and vendor-specific solutions

Case Studies

In addition to tools, I wrote a number of case studies that are now too out of date to reprint:

  • case1/ Indexing Basic MySQL Queries
  • case2/ Table Design and MySQL Index Details
  • case3/ MySQL ORDER BY With LIMIT and ANALYZE
  • case4/ How To Index For Joins With MySQL
  • case5/ How To Look At MySQL Joins and More ORDER BY With LIMIT

Instead, read my book: Efficient MySQL Performance. It’s up to date, covers the same topics (in chapter 2), and teaches a lot more.


  • nontech/ Non-technical Guide to Isolating Slow MySQL Queries
  • joinrows/ JOIN Rows Produced vs. Rows Read
  • dns/ MySQL DNS Details

Sorry to repeat myself but, read my book: Efficient MySQL Performance. Original guides and other content on this website are captured in book, which is far more comprehensive and up to date.

CPAN Modules

All CPAN modules I created are obsolete and unmaintained. The alternative is to find or rewrite the module as a Go package. Let Perl rest in peace; it had a long and productive life. Use Go instead.