Самый эффективный способ не вставки дублей в 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
Что еще можно придумать? Ну чтобы не построчно проверять, можно как то это более эффективно сделать?