@DoggoTheKing

Как оптимизировать проверку на уникальность ID?

Есть таблица с полем, в котором хранятся ID юзеров. Таблица постоянно пополняется новыми записями. Иногда, ID юзера входит во второй раз. Такое вхождение проверяется так:
SELECT * FROM main_db WHERE ident=ID_NUMBER
Но эта проверка какая-то медленная. Сейчас записей в бд 700к. Будет в районе 20кк.
Как оптимизирвоать?

upd: ID формируется не мной
upd2: 600к записей добавлялись 5 часов. Это нормально?
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 2
kruglikdenis
@kruglikdenis
Full-stack web developer
Можете повесить уникальный индекс на поле и убрать данную проверку:
CREATE UNIQUE INDEX ident
ON main_db (ident);


Так же в качестве id можете использовать не то поле, которые вы получили при парсе, а какое либо свое
и генерировать его как uuid 4: https://en.wikipedia.org/wiki/Universally_unique_i...
вот библиотека для генерации uuid: https://github.com/ramsey/uuid
Ответ написан
Комментировать
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Это должно быть очень быстро.
Убедитесь что есть уникальный индекс по полю ident.

Если вдруг надо прям совсем-совсем быстро, возьмите redis и храните в нем ключ-значение в виде ident - ваш id
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы