Как ускорить executemany в Python при INSERT IGNORE (mysql)?
Python 3, mysql 5.7, mysql.connector. Вставляю в базу большое количество значений (~5 млн строк, пакетами по 5000 строк) через executemany. Некоторые значения не уникальны. В этом случае требуется просто пропустить эту вставку/обновить/заменить ее. Если использовать INSERT - при хоть одной ошибке в пакете на 5000 строк, при наличии дубликата не вставляется весь пакет. Скорость вставки высокая. Для решения проблемы попробовал INSERT IGNORE, скорость падает в разы, впечатление что запросы выполняются по отдельности, а не пакетом. Как можно решить данную проблему, без ущерба в скорости?
Вставить во временную таблицу, сджойнить с основной по принципу "оставь данные из временной, отсутствующие в основной" и недостающие записи вставить в основную.