У меня есть большой стол (5 миллионов строк), с уникальным идентификатором колонкой под названием «unique_id»Использование уникального индекса MySQL для предотвращения дублирования, а не для повторного поиска?
Я бег запрос INSERT через Node.js (node-mysql
привязок), и есть шанс, что дубликаты могут быть предприняты попытка для вставки.
два решения:
1) Make 'unique_id' индекс, и проверьте всю базу данных для повторяющейся записи, до ВСТАВИТЬ:
'SELECT unique_id WHERE example = "'+unique_id+'" LIMIT 1'
2) Make 'unique_id' а уникальный индекс в MySQL и выполнить INSERT без проверки дубликатов. Очевидно, что любые дубликаты вызовут ошибку и не будут вставлены в таблицу.
Моя догадка заключается в том, что решение 2) лучше, так как оно предотвращает поиск в худшем случае (5 миллионов - 1) строк для дубликата.
Есть ли недостатки в использовании решения 2)?
Спасибо, это хороший ответ –