以下值得关注的 20个SQL查询优化技术列表:
-
1.在庞大的表(>1.000.000)行上创建索引
-
2.使用 EXIST() 代替 COUNT() 查找表中的元素
-
3.用 SELECT 字段代替 SELECT * 4.
-
4.避免在 WHERE 子句中使用子查询 5.
-
5.尽可能避免 SELECT DISTINCT
-
6.使用 WHERE 子句而不是 HAVING 子句 7.
-
7.使用 INNER JOIN(而不是 WHERE)创建连接
-
8.使用 LIMIT 对查询结果进行抽样
-
9.尽可能使用 UNION ALL 而不是 UNION
-
10.使用 UNION where 代替 WHERE ... 或 ... 查询。
-
11.在非高峰时段运行查询
-
12.避免在连接查询中使用 OR
-
14.选择 GROUP BY 而不是窗口函数
-
15.使用派生表和临时表
-
16.在加载批量数据前删除索引
-
16.使用物化视图而不是视图
-
17.避免使用 != 或 <>(不等于)操作符
-
18.尽量减少子查询的数量
-
19.当使用左/右连接可以获得相同输出时,尽量少使用 INNER 连接。
-
20.为检索同一数据集,经常尝试使用临时数据源。
什么是查询优化?
它的主要功能是通过查找最佳执行计划来确定最有效率方式 来执行给定的 SQL 查询。
查询优化器的工作原理是将 SQL 查询作为输入并对其进行分析以确定如何最好地执行它。
- 第一步是解析 SQL 查询并创建语法树。然后优化器分析语法树以确定如何运行查询。
- 接下来,优化器生成 替代性执行计划,这是执行同一查询的不同方式。每个执行计划指定访问表的顺序、连接方法以及任何过滤或排序操作。
- 然后,优化器根据磁盘读取次数和执行查询所需的 CPU 时间为每个执行计划分配一个 成本。
- 最后,优化器以最低的成本作为查询的最优执行计划。然后使用该计划来执行查询。
原文:https://www.jdon.com/69079.html