gpt4 book ai didi

sql - Where 语句中的顺序是否会影响性能?

转载 作者:行者123 更新时间:2023-12-04 05:07:25 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Does the order of conditions in a WHERE clause affect MySQL performance?

(8 个回答)


8年前关闭。




您在构建查询时指定的顺序是否会影响性能?或者 SQL 进行智能过滤。

例如,假设我有一个包含 200 万条记录的 Employee 表:

Employee( emp_id, name, dept_id, country_id )

不是说我想获得国家 ID 500 和部门 ID 17 中那些员工的 ID 和姓名。
不能说那个部门大约有 30 万,那个国家大约有 100 万,但是满足这两个标准的结果是 5 万。

如果我这样做会不会对性能产生影响:
SELECT *
FROM employees
where dept_id = 17 and country_id= 500

比如果我这样做:
    SELECT *
FROM employees
where country_id= 500 and dept_id = 17

假设后者将表减少到 100 万,然后从那里做剩下的工作
第一个查询将减少到 300k 并从那里执行第二个过滤器。

但是,如前所述,我不确定这是 SQL 电机处理查询的方式。

最佳答案

它确实有影响,尤其是当您的执行计划中有剩余谓词时,但大多数时候查询优化器会为您完成对谓词重新排序的工作。

当然,这假设您的索引和统计数据得到良好维护和更新,因此需要考虑这一点。

进一步阅读:http://sqlserverpedia.com/wiki/Index_Selectivity_and_Column_Order

关于sql - Where 语句中的顺序是否会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15346436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com