20个SQL查询优化技巧(如何优化sql查询效率)
以下值得关注的 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 时间为每个执行计划分配一个 成本。
- 最后,优化器以最低的成本作为查询的最优执行计划。然后使用该计划来执行查询。