Задать вопрос
@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

Что еще можно придумать? Ну чтобы не построчно проверять, можно как то это более эффективно сделать?
  • Вопрос задан
  • 3224 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@IceJOKER
Web/Android developer
index0h
@index0h
PHP, Golang. https://github.com/index0h
Попробуйте INSERT IGNORE, вот неплохой тред об этом
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы