Предположим, у меня есть таблица MySQL (InnoDB), как этотМогу ли я заставить MySQL индексировать определенные значения?
CREATE TABLE Item (id INT, ..., score INT, INDEX (score));
Из-логики приложения, все начинается со счетом 1, вскоре после этого каждый элемент будет получить другой счет (с относительно небольшим числом столкновений после так что индекс не-1 значений должен быть достаточно сбалансированным).
Это таблица с частотами записи. Я обеспокоен тем, что по мере того, как база данных масштабируется, индекс будет обманут, в частности, ведром предметов с score=1
. Я не понимаю полных последствий в отношении фрагментации и кластеризации, и я не могу проверить это правильно, пока не на на самом деле увеличит аппаратное обеспечение.
Есть ли способ сказать MySQL не вставлять записи в индекс для данного заданного значения?
Запросов никогда не было с WHERE score=1
, самым сложным запросом будет SELECT ... WHERE score>lower_limit ORDER BY score
.