Я думаю, что «почти уникальным», вероятно, является красная сельдь. Данные либо уникальны, либо нет, но это не определяет, хотите ли вы индексировать их по соображениям производительности.
Ответ:
5000 записей - это на самом деле совсем немного, и независимо от того, есть ли у вас индекс, поиск все равно будет быстрым. При таком количестве вставок вам понадобится 3 года, чтобы получить 10000 записей, что также не так много.
Лично я не стал бы беспокоиться о добавлении индекса, но это не имело бы значения, если бы вы это сделали.
Пояснение:
При принятии решения о добавлении индекса необходимо учитывать компромисс между скоростью вставки и скоростью выбора.
Без индекса выполнение select
в этом поле означает, что MySQL должен пройтись по каждой строке и прочитать каждое поле. Добавление индекса предотвращает это.
Недостатком индекса является то, что при каждой вставке данных БД должна обновлять индекс в дополнение к добавлению данных. Обычно это небольшие накладные расходы, но вы бы действительно заметили это, если бы у вас было много индексов, и вы много писали.
К тому времени, когда вы получите столько строк в своей базе данных, вы все равно захотите индекс, так как в противном случае ваш выбор займет весь день, но это просто то, о чем нужно знать, чтобы вы не добавили индексы поля "на всякий случай мне это нужно"