У меня есть простой таблицы «t1», который содержит:индексы MySQL/заказные данные на основе нескольких критериев
word VARCHAR(16)
id INT
importance SMALLINT
слово и идентификатор являются уникальными вместе, но ни один не является уникальным в одиночку.
Я добавил 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.15s к выполните команду ORDER BY importance DESC
.
Мой вопрос в том, как я могу индексировать/переупорядочивать таблицу, чтобы она была организована сначала словом, а затем по важности без необходимости сортировки на лету?
Могу ли я просто изменить порядок статических данных, поэтому он сортируется по word, importance DESC
по умолчанию?
Я думал об этом, но проблема возникает, когда я заполняю таблицу. Я хочу убедиться, что я не добавляю несколько слов, пар идентификаторов. Как вы думаете? – nick
@nick: Как я уже сказал, вам не нужно удалять свой уникальный индекс. У вас могут быть оба индекса одновременно. –
Разве это не удвоит дисковое пространство? – nick