@mihelsonkk
nginx, mysql, unix

Mysql — запрос?

Ситуация - python2.7, orm peewee
есть список url L
нужно добавить его в таблицу, без повторений.
Сейчас так - столбец url с ключом unique, при добавлении ничего не проверяю, просто оборачиваю insert try except ом и все. Решение разонравилось после того как заметил что id по автоинкременту все равно увеличиваются, под нагрузкой id легко может быстро достичь больших значений как здесь habrahabr.ru/post/156489 да и плодить кучу ворнингов не хочется.
Подскажите, как сделать лучше?

Думал о варианте - сначала селектнуть весь столбец url из базы и пробегая в приложении по списку урл L проверять наличие. Не нравится то что если в списке урл L есть совпадения то опять же -может быть дубль.

Или делать по одному селекту для каждого элемента из списка например с LIMIT 1 и числовым хеш-индексом?

upd
Решение Wol_fi Wol_fi
+коммент Wol_fi Wol_fi
в качестве альтернативы - можно использовать CRC32 от url как первичный ключ
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
@Wol_fi
php, js, mysql, highload
уникальный индекс на url и INSERT INGORE(не будет выкидывать эксепшнов и ошибок при попытке вставить дубликат), просто и быстро.
зачем вам там автоинкрементный айди нужен?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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