У меня есть список записей для вставки в БД с использованием моих приманок. Ранее мой код был что-то вроде:
for(Item item : items){
sqlSession.insert("insert", item);
}
Использование этого метода работает, но я обнаружил, что на сервере Mysql
имеется динамический инкрементный диск DiskIO из-за количества элементов.
Поскольку у меня мало доступа к конфигурации MySql, и я надеюсь решить эту проблему с высоким диском, я нашел несколько возможных решений:
- с использованием
ExecutorType.BATCH
для sqlSession
- вставка нескольких значений в одном операторе вставки, например:
insert into Item values <foreach collection="list" item="item" index="index" separator=","> (#{item.a}, #{item.b}...) </foreach>
У кого-нибудь есть идеи, какой из них подходит для решения моей проблемы с высоким уровнем дискового пространства и в чем основное различие между этими двумя решениями? спасибо.