A MySQL Config File needs settings matched to its server version and workload. I measure pressure before changing a parameter.
MySQL Performance – Slow Query and innodb_buffer_pool_size
A small innodb_buffer_pool_size contributed to one customer slow MySQL query. The comparable SQL Server workload ran quickly.
Internal Temporary Tables in MySQL: When a Query Spills to Disk
MySQL and MariaDB build internal temporary tables behind your back for GROUP BY, DISTINCT, UNION and derived tables. This post counts them with status counters, reads them in EXPLAIN, shows what pushes one to disk, and removes one with an index.
SQL SERVER – SQL_NO_CACHE and OPTION RECOMPILE Target Different Caches
OPTION (RECOMPILE) and SQL_NO_CACHE concern different cached objects. A banking customer using MySQL and SQL Server prompted my comparison.
Last Query Cost in MySQL: Read It With SHOW STATUS
The last query cost in MySQL is a number the optimizer computes for the last query it compiled, and SHOW STATUS LIKE ‘Last_query_cost’ returns it. This post shows the command on a Sakila query, explains what the number means and where it misleads. It also points to EXPLAIN FORMAT=JSON for the cost of each part of a plan.
Retrieve TOP 10 Rows Without Using TOP or LIMIT? – Interview Question of the Week #247
Question: Retrieve TOP 10 Rows Without Using TOP or LIMIT? We do not want to use TOP or LIMIT as they are actually not an ANSI implementation.
MariaDB – MySQL – Show Engines to Display All Available and Supported Engine
I inspect each Supported Engine with SHOW ENGINES on MariaDB. A customer using MariaDB alongside SQL Server asked about this list.







