PreparedStatement.addBatch в java имеет какие-либо ограничения?

#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