Я использую Mysql, Spring Data JPA.В моем случае использования у меня есть только 1 таблица, например, Customer (ID, FIRST_NAME, LAST_NAME). Я пытаюсь добиться обновления в пакетном / массовом порядке, где операторы обновления представляют собой группу, как показано выше в примере , чтобы уменьшитьпоездки в базу данных .
Я установил все свойства
- hibernate.order_inserts: true
- hibernate.order_updates: true
- hibernate.jdbc.batch_versioned_data: true
Но результат (операторы обновления не группируются): журналы из общих журналов MySQL
2018-10-28T03:18:32.545233Z 1711 Query update CUSTOMER set FIRST_NAME=’499997′, LAST_NAME=’499998′ where id=499996;
2018-10-28T03:18:32.545488Z 1711 Query update CUSTOMER set FIRST_NAME=’499998′, LAST_NAME=’499999′ where id=499997;
2018-10-28T03:18:32.545809Z 1711 Query update CUSTOMER set FIRST_NAME=’499999′, LAST_NAME=’500000′ where id=499998;
Желаемый результат: (обновления сгруппированы как один запрос, что сокращает количество обращений к БД)
2018-10-28T03:18:32.545233Z 1711 Query update CUSTOMER set FIRST_NAME=’499997′, LAST_NAME=’499998′ where id=499996; update CUSTOMER set FIRST_NAME=’499998′, LAST_NAME=’499999′ where id=499997; update CUSTOMER set FIRST_NAME=’499999′, LAST_NAME=’500000′ where id=499998;
Мое приложение должно выполнить более 100 миллионов обновлений, и я полагаю, что это может быть самым быстрым способом.