📄️ 1.优化概述
概述
📄️ 2.优化SQL语句(未完成)
数据库应用程序的核心逻辑是通过 SQL 语句执行的,无论是通过解释器直接发出还是通过 API 在后台提交。本节中的调优指南有助于加快各种 MySQL 应用程序的速度。该指南涵盖了读取和写入数据的 SQL 操作、一般 SQL 操作的幕后开销以及数据库监控等特定场景中使用的操作。
📄️ 8.嵌套连接优化
表达连接的语法允许嵌套连接。
📄️ 9.外连接优化
外连接包括 LEFT JOIN和 RIGHT JOIN。
📄️ 10.外连接简化
在许多情况下,查询的 FROM 子句中的表表达式都会得到简化。
📄️ 15.IS NULL 优化
MySQL 可以对 colname IS NULL 执行与 colname = Constant_value 相同的优化。 例如,MySQL 可以使用索引和范围通过 IS NULL 搜索 NULL。
📄️ 16.ORDER BY 优化
本节描述了 MySQL 何时可以使用索引来满足 ORDER BY 子句、无法使用索引时使用的文件排序操作,以及优化器提供的有关 ORDER BY 的执行计划信息。
📄️ 17.GROUP BY 优化
满足 GROUP BY 子句的最通用方法是扫描整个表并创建一个新的临时表,其中每个组中的所有行都是连续的,然后使用此临时表来发现组并应用聚合函数(如果有)。 在某些情况下,MySQL 能够做得更好,并通过使用索引访问来避免创建临时表。
📄️ 18.DISTINCT 优化
DISTINCT 与 ORDER BY 结合在很多情况下都需要临时表。
📄️ 19.LIMIT 查询优化
如果只需要结果集中指定数量的行,请在查询中使用 LIMIT 子句,而不是获取整个结果集并丢弃额外的数据。
📄️ 23.避免全表扫描
当 MySQL 使用全表扫描来解析查询时,EXPLAIN 的输出会在类型列中显示 ALL。 这通常发生在以下条件下:
📄️ 30.优化 INFORMATION_SCHEMA 查询
监视数据库的应用程序可能会频繁使用 INFORMATION_SCHEMA 表。 要最有效地为这些表编写查询,请使用以下一般准则:
📄️ 31.优化 Performance Schema 查询
监视数据库的应用程序可能会频繁使用性能模式(Performance Schema)表。 要最有效地为这些表编写查询,请利用它们的索引。 例如,包含一个 WHERE 子句,该子句根据与索引列中特定值的比较来限制检索的行。
📄️ 32.优化数据变更语句
本节介绍如何加快数据更改语句:INSERT、UPDATE 和 DELETE。 传统的 OLTP 应用程序和现代 Web 应用程序通常会执行许多小型数据更改操作,其中并发性至关重要。 数据分析和报告应用程序通常运行同时影响许多行的数据更改操作,其中主要考虑因素是写入大量数据并使索引保持最新的 I/O。 为了插入和更新大量数据(业内称为 ETL,即“提取-转换-加载”),有时会使用其他 SQL 语句或外部命令来模拟 INSERT、UPDATE 和 DELETE 语句的效果。
📄️ 33.优化数据库权限
优化数据库权限
📄️ 34.其他优化技巧
本节列出了许多提高查询处理速度的其他技巧: