📄️ 1.使用 EXPLAIN 优化查询
根据表、列、索引的详细信息以及 WHERE 子句中的条件,MySQL 优化器会考虑多种技术来有效地执行 SQL 查询中涉及的查找。 对大表进行查询无需读取所有行; 可以执行涉及多个表的联接,而无需比较每个行组合。 优化器选择执行最有效查询的操作集称为“查询执行计划”,也称为 EXPLAIN 计划。
📄️ 2.EXPLAIN 输出格式
EXPLAIN 语句提供有关 MySQL 如何执行语句的信息。 EXPLAIN 与 SELECT、DELETE、INSERT、REPLACE 和 UPDATE 语句配合使用。
📄️ 3.扩展 EXPLAIN 输出格式
EXPLAIN 语句产生额外的(“扩展”)信息,这些信息不是 EXPLAIN 输出的一部分,但可以通过在 EXPLAIN 之后发出 SHOW WARNINGS 语句来查看。 扩展信息可用于 SELECT、DELETE、INSERT、REPLACE 和 UPDATE 语句。
📄️ 5.估计查询性能
在大多数情况下,可以通过计算磁盘查找次数来估计查询性能。 对于小型表,通常可以在一次磁盘查找中找到一行(因为索引可能已缓存)。 对于较大的表,可以估计,使用 B 树索引,需要多次查找才能找到一行:log(rowcount) / log(indexblocklength / 3 * 2 / (indexlength + datapointerlength)) + 1。