There is nothing to be gained by trying to optimize a stored program without first optimizing the SQL statements that it contains. This chapter, therefore, intended to make you familiar with some basic principles of tuning MySQL stored programs and the SQL statements within those programs. With this knowledge, you will be able to better absorb the more specific tuning advice in the following chapters.
Remember that the performance of individual SQL statements can vary substantially, at least in part depending on whether the statement and/or the data it identifies resides in a MySQL memory cache. For this reason, you should be wary of basing your tuning efforts only on the elapsed time of SQL statements. Consider also calculating the number of logical reads required by your statements, as this will only decrease as efficiency improves. Unfortunately, at the time of writing, you can reliably obtain the logical read rate only from the InnoDB storage engine.
EXPLAIN statement reveals
how MySQL will execute a SQL statement. In order to effectively tune
SQL, you need to become familiar with
EXPLAIN and adept at interpreting its
Indexes exist primarily to improve query performance, so it’s
not surprising that creating a good set of indexes is the single most
important thing you can do to obtain better SQL performance. In
particular, you should support
WHERE clause conditions and join conditions with appropriate indexes—this often means creating a concatenated (“composite” ...