MySQL - '使用索引条件'vs'使用where;使用索引'

时间:2015-02-27 07:20:00

标签: mysql performance indexing

我想知道Using index conditionUsing where; Using index之间的区别。 我认为两种方法都使用索引来获取第一个结果记录集,并使用WHERE条件进行过滤。

Q1。有什么区别?

Q2。哪个更好?

谢谢。

2 个答案:

答案 0 :(得分:3)

使用索引条件:其中condition包含索引列和非索引列,优化器将首先解析索引列,并在表中查找其他条件的行(索引下推)

使用where;使用索引:'使用索引'意思是不对整个表进行扫描。 '使用where'仍然可以在非索引列上进行表扫描,但如果where条件中有任何索引列,则会使用它更像是使用索引条件

哪个更好? '在哪里使用;使用索引'会更好然后使用索引条件'如果查询的索引全部覆盖。

答案 1 :(得分:0)

如果您看到此链接:https://dev.mysql.com/doc/refman/5.7/en/index-extensions.html

它解释了当' Column Extra'说'使用索引条件',条件使用索引的所有列。如果索引中有任何列,则Column Extra说使用Where,使用索引(在这种情况下,Mysql需要在数据行中查找以应用where子句)。它更好'使用索引条件'。