Я пытаюсь вставить около 5000 значений в таблицу MySql с использованием Spring JDBC шаблон пакетного обновления, как показано здесьSpring обновление JdbcTemplate партия быстрая альтернатива
Как я понимаю, что это делает так много вставок сколько строк я даю в одной транзакции. Но он все еще медленный.
Я попытался формирования запроса, как
INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?),(?, ?, ?)....
на столько строк, у меня есть. Он выполнялся намного быстрее, но мне пришлось сформировать запрос вручную. Интересно, есть ли альтернативы для пакетного обновления для таких случаев?
P.S. Я знаю, что следует учитывать максимальный размер пакета, размер запроса не должен превышать лимит (хотя предел может быть настроен на сервере MySql) при построении таких больших запросов.
ли вы испробовали 'preparedStatement.addBatch(); createdStatement.executeBatch(); '? – Xstian
Да, никакого значимого влияния – lopushen
Чтобы обновления пакета работали, убедитесь, что у вас есть версия драйвера JDBC (и база данных), которая ее поддерживает, если не будет выполняться одиночные запросы вместо пакета. Также убедитесь, что у вас есть правильная настройка транзакции и используются транзакционные таблицы. –