Задать вопрос

Можно ли использовать UNIQUE для VARCHAR?

Будет ли критичным использование UNIQUE для VARCHAR (в поле будут содержаться обычные ссылки)?
Или лучше сделать хэш (char(32))?
В таблице будет ~ 300 000 - 500 000 записей.
  • Вопрос задан
  • 2369 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@Arik
Данных не так прям много, всегда лучше начинать с простой понятной логики, а потом, по необходимости, оптимизировать. Сейчас UNIQUE(`url`), завтра можно будет добавить поле `hashCRC32` INT и хранить там хэш строки в CRC32, уникальный индекс надо будет поменять на UNIQUE(`hashCRC32`, `url`) - по полю с целым числом будет быстрая выборка и двойной индекс не даст дубликатов.
Ответ написан
Комментировать
kumaxim
@kumaxim
Web-программист
Много данных - это 20 млн записей....
В твоем случае вешай на поле UNIQUE + делай по этому же полю INDEX и скорость выборки/нагрузка на БД будут приемлемыми.
Ответ написан
Комментировать
Vapaamies
@Vapaamies
Психанул и снес свои ответы не отмечающим решения…
Если СУБД поддерживает функциональные индексы (function-based), можно сделать его.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы