Мне нужно потреблять довольно большой объем данных из ежедневного файла CSV. CSV содержит около 120 тыс. Записей. Это замедляется при сканировании при использовании спящего режима. В принципе, кажется, что hibernate делает SELECT перед каждым INSERT (или UPDATE) при использовании saveOrUpdate(); для каждого экземпляра, сохраняемого с помощью saveOrUpdate(), SELECT выдается до фактического INSERT или UPDATE. Я могу понять, почему он это делает, но он ужасно неэффективен для выполнения массовой обработки, и я ищу альтернативы.
Я уверен, что проблема с производительностью связана с тем, как я использую спящий режим для этого, так как у меня есть другая версия, работающая с собственным SQL (который разбирает CSV в excat таким же образом) и его буквально запущенные круги вокруг этого новая версия)
Итак, к реальному вопросу, существует ли альтернатива спящего режима для mysqls? Синтаксис "INSERT... ON DUPLICATE"?
Или, если я захочу сделать собственный SQL для этого, могу ли я сделать собственный SQL в транзакции с гибернацией? Смысл, поддержит ли он фиксацию/откаты?