Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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使用索引进行排序,但不在WHERE子句中?_Mysql - Fatal编程技术网

让MySQL使用索引进行排序,但不在WHERE子句中?

让MySQL使用索引进行排序,但不在WHERE子句中?,mysql,Mysql,我有一个查询,可以简化为 SELECT * FROM table WHERE field > 5 ORDER BY field DESC 其中字段>5与一半以上的记录匹配。我在字段上有一个索引,但是MySQL没有使用它,因为太多的记录满足了这个条件。是否可以只对订单使用索引,而不使用WHERE子句?我想简单的答案是:即使可能,这样做也没有意义。数据库优化器根据索引是否会提高性能来决定何时使用索引。为什么索引对排序有用?你会取得什么成就?你知道索引是如何工作的吗?为什么索引对过滤不起作用?

我有一个查询,可以简化为

SELECT *
FROM table
WHERE field > 5
ORDER BY field DESC

其中
字段>5
与一半以上的记录匹配。我在
字段
上有一个索引,但是MySQL没有使用它,因为太多的记录满足了这个条件。是否可以只对订单使用索引,而不使用
WHERE
子句?

我想简单的答案是:即使可能,这样做也没有意义。数据库优化器根据索引是否会提高性能来决定何时使用索引。

为什么索引对排序有用?你会取得什么成就?你知道索引是如何工作的吗?为什么索引对过滤不起作用?@GolezTrol在某些情况下,如果数据的选择性很低,优化器可以避免使用索引。@N.B.索引不会加快排序吗?@Linksku-不一定。MySQL跳过使用索引,因为有时不用索引工作会更快。