【发布时间】:2020-11-10 00:49:52
【问题描述】:
以下查询(特别是 ORDER BY price IS NULL DESC)是否使用价格列上的索引?
SELECT * FROM products ORDER BY price IS NULL DESC, price DESC
product_id | price
-----------|------
1 5
2 6
3 NULL
4 8
我希望查询返回
product_id | price
-----------|------
3 NULL
4 8
2 6
1 5
【问题讨论】:
-
使用
EXPLAIN查看使用了哪些索引。 -
据我所知,这导致查询使用文件排序....想要验证我的发现
-
我不会感到惊讶。
-
我不希望将
ORDER BY price DESC更改为ORDER BY price IS NULL DESC, price DESC会改变是否使用索引。 “使用文件排序”并不意味着不使用索引。如果您需要知情的答案,请在您的问题中添加两个查询的解释
标签: mysql indexing sql-order-by