我有一个简单的表“t1”,其中包含:
word VARCHAR(16)
id INT
importance SMALLINT
word 和 id 一起是唯一的,但单独使用时都不是唯一的。
我添加了一个UNIQUE INDEX(word, id)
我的查询看起来像这样:
SELECT id FROM t1 WHERE word = "something" ORDER BY importance DESC
但是执行需要 0.0002 秒:
SELECT id FROM t1 WHERE word = "something"
但执行ORDER BY important DESC
需要多达0.15秒。
我的问题是,如何对表格进行索引/重新排序,以便首先按单词进行组织,然后按重要性进行组织,而无需即时进行排序?
我可以重新排序静态数据,使其默认按单词、重要性 DESC
排序吗?
最佳答案
要加快查询速度,请在(单词、重要性 DESC、id)
上添加索引。
一张表上可以有多个索引,因此如果您不想删除现有索引,则无需删除。
关于mysql 基于多个条件的索引/排序数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10956060/