假设我有一个包含两个条件的MySQL查询:
SELECT * FROM `table` WHERE `field_1` = 1 AND `field_2` LIKE '%term%';第一个条件显然要比第二个条件便宜得多,所以我想确保它首先运行,从而限制将与like子句进行比较的行池。MySQL查询条件是否按列出的顺序运行,如果不是,是否有指定顺序的方法?
发布于 2011-11-30 22:35:33
在大多数情况下,MySQL都有一个内部查询优化器来处理这些事情。因此,通常情况下,您不需要担心它。
当然,查询优化器并不是万无一失的。所以..。
很抱歉这样做,但是如果您怀疑某个查询的运行效率可能低于预期,那么您需要熟悉一下EXPLAIN。
发布于 2011-11-30 22:42:27
优化器将按照它认为合适的顺序评估WHERE条件。
SQL是declarative:你告诉优化器你想要什么,而不是怎么做。
在procedural/imperative语言(.net、Java、php等)中,然后说明如何以及如何选择首先计算哪个条件。
注意:“从左到右”确实适用于某些表达式,如您所期望的(a+b)*c
发布于 2011-11-30 22:37:51
如果您对索引的MySQL使用有疑问,您可以建议使用哪种索引。
https://stackoverflow.com/questions/8327510
复制相似问题