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

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

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

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

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