【发布时间】:2012-12-26 17:51:40
【问题描述】:
我有一个使用 order by 将数据返回到用户界面的系统;用户可以按任意顺序从十几个不同的排序选项中进行选择。
我有问题
explain extended select t.* from task t order by create_date, due_date limit 5;
+------+-------------+-------+------+---------------+------+---------+------+--------+----------+----------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | filtered | Extra |
+------+-------------+-------+------+---------------+------+---------+------+--------+----------+----------------+
| 1 | SIMPLE | t | ALL | NULL | NULL | NULL | NULL | 331233 | 100.00 | Using filesort |
+------+-------------+-------+------+---------------+------+---------+------+--------+----------+----------------+
1 row in set, 1 warning (0.00 sec)
我有一个关于 create_date 和 due_date 的索引。我知道我可以创建一个多列索引;但是,由于大约有 12 种不同的排序选项,这意味着我必须创建一百多个索引才能涵盖所有场景。
我阅读了有关索引合并的信息,我相信这会解决问题,因为我可以为您可以排序的每一列创建一个索引,但是我似乎无法让它在“排序依据”部分工作查询。
【问题讨论】:
-
您有实际问题吗?
标签: mysql sql indexing mariadb