首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中条件的执行顺序

问MySQL中条件的执行顺序
EN

Stack Overflow用户
提问于 2011-11-30 22:30:56
回答 3查看 3.2K关注 0票数 10

假设我有一个包含两个条件的MySQL查询:

代码语言:javascript
复制
SELECT * FROM `table` WHERE `field_1` = 1 AND `field_2` LIKE '%term%';

第一个条件显然要比第二个条件便宜得多,所以我想确保它首先运行,从而限制将与like子句进行比较的行池。MySQL查询条件是否按列出的顺序运行,如果不是,是否有指定顺序的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-30 22:35:33

在大多数情况下,MySQL都有一个内部查询优化器来处理这些事情。因此,通常情况下,您不需要担心它。

当然,查询优化器并不是万无一失的。所以..。

很抱歉这样做,但是如果您怀疑某个查询的运行效率可能低于预期,那么您需要熟悉一下EXPLAIN。

http://dev.mysql.com/doc/refman/5.0/en/explain.html

票数 7
EN

Stack Overflow用户

发布于 2011-11-30 22:42:27

优化器将按照它认为合适的顺序评估WHERE条件。

SQL是declarative:你告诉优化器你想要什么,而不是怎么做。

在procedural/imperative语言(.net、Java、php等)中,然后说明如何以及如何选择首先计算哪个条件。

注意:“从左到右”确实适用于某些表达式,如您所期望的(a+b)*c

票数 8
EN

Stack Overflow用户

发布于 2011-11-30 22:37:51

如果您对索引的MySQL使用有疑问,您可以建议使用哪种索引。

http://dev.mysql.com/doc/refman/5.1/en/index-hints.html

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

https://stackoverflow.com/questions/8327510

复制
相关文章

相似问题

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