返回数说广场
1
值得注意的前 20 项 SQL 查询优化技术列表:
在大表(> 1,000,000 行)上创建索引
使用 EXIST() 代替 COUNT() 查找表中的元素
SELECT 指定字段而不是使用 SELECT *
避免在 WHERE 子句中使用子查询
尽量避免使用 SELECT DISTINCT
使用 WHERE 子句而不是 HAVING 子句
创建连接时使用 INNER JOIN(而不是 WHERE)
使用 LIMIT 来对查询结果进行采样
在可能的情况下使用 UNION ALL 代替 UNION
使用 UNION 替代 WHERE ... or ... 查询
在非高峰时间运行查询
避免在连接查询中使用 OR
选择 GROUP BY 代替窗口函数
使用派生表和临时表
在加载大量数据前删除索引
使用物化视图代替视图
避免使用 != 或 <>(不等于)运算符
最小化子查询的数量
在可能的情况下尽量减少使用 INNER JOIN,可以使用 LEFT/RIGHT JOIN 获取相同结果
频繁尝试使用临时源来检索相同的数据集
你知道什么是查询优化器(Query Optimizer)吗?它的主要功能是通过找到最佳执行计划,确定执行给定 SQL 查询的最有效方式。查询优化器将 SQL 查询作为输入并进行分析,以确定如何最好地执行它。第一步是解析 SQL 查询并创建语法树。然后优化器会分析语法树,以确定如何运行查询。
接下来,优化器会生成替代执行计划,即执行相同查询的不同方法。每个执行计划指定访问表的顺序、连接方法以及任何过滤或排序操作。然后优化器根据执行查询所需的磁盘读取次数和 CPU 时间,为每个执行计划分配一个成本。
最后,优化器会选择成本最低的执行计划作为查询的最优执行计划。然后使用该计划来执行查询。
在图片中查看 SQL 查询运行的顺序。

0
1 442
分享
评论
热门数说


