首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL查询中,布尔语句的顺序是否会影响性能?

问在MySQL查询中,布尔语句的顺序是否会影响性能?
EN

Stack Overflow用户
提问于 2009-10-07 22:34:37
回答 2查看 146关注 0票数 2

假设我想查询一个基于多个WHERE子句的表。

这两条语句中的任何一条会比另一条更快吗?

代码语言:javascript
复制
  SELECT * 
    FROM table 
   WHERE (line_type='section_intro' OR line_type='question') 
     AND (line_order BETWEEN 0 AND 12) 
ORDER BY line_order";

...or:

代码语言:javascript
复制
  SELECT * 
    FROM table 
   WHERE (line_order BETWEEN 0 AND 12) 
     AND (line_type='section_intro' OR line_type='question') 
ORDER BY line_order;

我猜这将归结为第一个记录是否会选择12个以上的记录,然后从那里削减。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-07 22:37:57

不,顺序并不重要。查询优化器将分别评估所有条件,并根据适用的索引/目标选择的大小等决定最佳顺序。

票数 2
EN

Stack Overflow用户

发布于 2009-10-07 22:54:45

这取决于您的索引。如果您在(line_type,line_order)上使用多索引,则第一个查询会更快。如果你有一个索引(line_order,line_type),第二个更快。这是因为对于多列主键,MySQL只能按顺序进行比较。否则,就没有区别了。

HTH -

克里斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1534603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档