我想知道Using index condition
和Using where; Using index
之间的区别。
我认为两种方法都使用索引来获取第一个结果记录集,并使用WHERE条件进行过滤。
Q1。有什么区别?
Q2。哪个更好?
谢谢。
答案 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子句)。它更好'使用索引条件'。