mysql索引/基于多个条件的订购数据

时间:2012-06-08 21:08:29

标签: mysql database indexing

我有一个简单的表“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"

但需要多达0.15秒来执行ORDER BY importance DESC

我的问题是,如何对表格进行索引/重新排序,以便首先按字词组织,然后按重要性进行组织,而不必动态进行排序?

我可以重新排序静态数据,因此默认情况下按word, importance DESC排序吗?

1 个答案:

答案 0 :(得分:2)

要加快查询速度,请在(word, importance DESC, id)上添加索引。

您可以在表上放置多个索引,因此如果您不想删除现有索引,则无需删除。