@beduin01

Самый эффективный способ не вставки дублей в MySQL?

Суть такая. Есть несколько тысяч строк, которые нужно вставить в MySQL. В БД большая часть этих строк уже есть.

Есть два пути решения. Первое:
1. делать SELECT каждой вставляемой строки, и если FALSE, то вставлять ее
2. вставлять все, но используя ON DUPLICATE UPDATE

Я провел тестирование. Первый способ работает в три раза быстрее. Подозреваю второй тормозит из-за операции UPDATE.

Вопрос. Есть ли еще какое-то более быстрый/эффективный способ решения этой задачи?

Я провел тест:
Insert time (ON DUPLICATE UPDATE): 1 sec, 8 ms, 57 s, and 6 hnsecs

Insert time (SELECT and if NULL INSERT)): 301 ms, 17 s, and 3 hnsecs

Insert time (INSERT IGNORE)): 922 ms, 52 s, and 7 hnsecs

Что еще можно придумать? Ну чтобы не построчно проверять, можно как то это более эффективно сделать?
  • Вопрос задан
  • 3185 просмотров
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
index0h
@index0h
PHP, Golang. https://github.com/index0h
Попробуйте INSERT IGNORE, вот неплохой тред об этом
Ответ написан
Ваш ответ на вопрос

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

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