#java #sql #mysql #jdbc
#java #sql #mysql #jdbc
Вопрос:
Я пытаюсь оптимизировать процесс вставки большого количества результатов в удаленную базу данных MySQL. Для этого я использую простой jdbc.
В настоящее время я заменяю завершающие инструкции на методы PreparedStatement и execute методами addBatch / executeBatch. Кто-нибудь знает, каковы пределы пакетного выполнения? Сколько пакетов я могу добавить перед выполнением, чтобы убедиться, что процесс не завершится сбоем? Запросы не являются специальными запросами, в них нет больших двоичных объектов или других больших полей.
Ответ №1:
@BalusC попал в самую точку. Если вы используете MySQL, используйте последнюю версию драйвера add rewriteBatchedStatements=true к вашей строке подключения, чтобы сделать инструкцию.addBatch() фактически создает пакетные вставки.
Хорошая презентация о производительности MySQL JDBC: http://assets.en.oreilly.com/1/event/21/Connector_J Performance Gems Presentation.pdf