Как ускорить executemany в Python при INSERT IGNORE (mysql)?

224
23 мая 2018, 15:30
  • Python 3
  • mysql 5.7
  • mysql.connector

Вставляю в базу большое количество значений (~5 млн строк, пакетами по 5000 строк) через executemany.

Некоторые значения не уникальны. В этом случае требуется просто пропустить эту вставку/обновить/заменить ее. Если использовать INSERT - при хоть одной ошибке в пакете на 5000 строк, при наличии дубликата не вставляется весь пакет. Скорость вставки высокая.

Для решения проблемы попробовал INSERT IGNORE, скорость падает в разы, впечатление что запросы выполняются по отдельности, а не пакетом.

Как можно решить данную проблему, без ущерба в скорости?

READ ALSO
SQL связь таблиц по телефону

SQL связь таблиц по телефону

Задача такая: Есть таблица клиентов CUSTOMERS с телефонами вида

184
поиск подстроки в mysql

поиск подстроки в mysql

можно ли в столбце из строки: 10,13,18/12:00:00/15:55:00 извлечь первые 3 цифры до символа '/' ? то есть мне надо что бы оператор LIKE сравнивал только (10,13,18),...

191
Todo list на php [закрыт]

Todo list на php [закрыт]

Подскажите, можно ли сделать простой Todo list без использования БД?

197