2

以下を含む単純なテーブル「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デフォルトでソートされるように、静的データを並べ替えることはできますか?

4

1 に答える 1

2

クエリを高速化するには、 にインデックスを追加します(word, importance DESC, id)

テーブルには複数のインデックスを設定できるため、削除したくない場合は既存のインデックスを削除する必要はありません。

于 2012-06-08T21:11:10.057 に答える