gpt4 book ai didi

mysql - 查询优化 - WHERE 子句中的表达式顺序

转载 作者:可可西里 更新时间:2023-11-01 07:32:55 27 4
gpt4 key购买 nike

假设我有一个名为 numbers 的表:

userID  ColA  ColB
------------------
25 10 11
25 10 16
28 10 11
28 10 16
29 12 14
29 10 16

我想找到用户 ID 为 28 且 colA = 10 和 colB = 16 的所有行

我的问题是查询结构。如果我先查找 userID,然后查找 colA 和 colB 值,例如

select * from numbers where userID=28 AND (colA=10 AND colB=16)

这比首先查找值更快吗?

select * from numbers where (colA=10 AND colB=16) AND userID=28

还是真的没有太大区别?我想我是在询问引擎如何读取查询结果,因为 (colA=10 AND colB=16) 的结果多于 userID=28。因此,我会先假设最少的可能?

我也了解索引等。

最佳答案

您的 RDBMS 将为该查询找出最佳执行计划。您将无法更改这些子句的顺序来提高性能,因为 RDBMS 在制定计划时已经考虑了类似的事情。

您可以使用 EXPLAIN命令以查看有关 RDBMS 决定使用的实际执行计划的更多信息。

关于mysql - 查询优化 - WHERE 子句中的表达式顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21146586/

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