【发布时间】:2019-02-24 09:19:27
【问题描述】:
我必须从包含大约 100 万个条目的表中选择值。 我的哪个查询会更有效?
查询 1:
select * from table1
where indexedcolumn1 < value1
and unindexedcolumn1 < value 2
and indexedcolumn2 < value2;
查询 2:
select * from table1
where indexedcolumn1 < value1
and indexedcolumn2 < value2
and unindexedcolumn1 < value 2;
如何充分利用索引?
【问题讨论】:
-
我们无法回答这个问题,因为我们不知道您的数据,也看不到解释计划。您应该将这些内容添加到您的问题中。
-
查看您的代码,这两个查询是相同的,where 子句中位置的变化不应该改变性能..但是您应该展示一个真实的案例..
-
因为在
WHERE子句中出现了一个(或多个)未索引的列,MySQL 很可能会选择根本不使用任何索引。您可以通过描述您要运行的实际查询来重新表述您的问题,然后寻求帮助以优化它。 -
use-the-index-luke.com 应该是必读的。
标签: mysql performance indexing query-optimization