Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-';使用索引条件';vs';在何处使用;使用索引&x27;_Mysql_Performance_Indexing - Fatal编程技术网

MySQL-';使用索引条件';vs';在何处使用;使用索引&x27;

MySQL-';使用索引条件';vs';在何处使用;使用索引&x27;,mysql,performance,indexing,Mysql,Performance,Indexing,我想知道使用索引条件和使用where的区别;使用索引。 我认为这两种方法都使用索引来获取第一个结果记录集,并使用WHERE条件进行过滤 Q1。有什么区别? Q2。哪个更好? 谢谢。使用索引条件:其中条件包含索引列和非索引列,优化器将首先解析索引列,并在表中查找其他条件的行(索引下推) 使用where;使用索引:“使用索引”表示不扫描整个表使用where'仍可以对非索引列执行表扫描,但如果where条件中首先有任何索引列,则使用where,更像使用索引条件 哪个更好? "在哪里使用,;如果查询包含

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

Q1。有什么区别?

Q2。哪个更好?


谢谢。

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

使用where;使用索引:“使用索引”表示不扫描整个表使用where'仍可以对非索引列执行表扫描,但如果where条件中首先有任何索引列,则使用where,更像使用索引条件

哪个更好? "在哪里使用,;如果查询包含所有索引,则使用“索引”比使用“索引条件”更好。

如果您观看此链接:


它解释了当“Column Extra”表示“Using Index Condition”时,where条件中的所有列都在使用索引。若索引之外有任何列,那个么额外的列表示使用Where,使用index(在这种情况下,Mysql需要在数据行中查找以应用Where子句)。最好是“使用索引条件”。

使用索引是指索引列覆盖了where条件,并且可能不需要扫描整个表。当where条件包含索引列和非索引列时,使用索引条件,优化器将首先解析索引列,并在表中查找其他条件的行。第二种方法称为索引下推。当然,使用所有覆盖索引的查询更好。@AbhikChakraborty-Then'Using-where;'在"何处使用",;“使用索引”表示条件覆盖索引列而不扫描表?是使用索引表示不扫描整个表。使用where仍然可以对非索引列执行表扫描,但如果where条件中首先有任何索引列,则使用where。这更像是使用索引条件。@AbhikChakraborty谢谢。“索引条件下推”是否支持
更新语句
?从源代码来看,没有结论表明更新可以使用索引条件下推。