Я пишу программу, которая много пишет в базу данных Postgres. В типичном сценарии я бы написал 100 000 строк в таблицу, которая хорошо нормализована (три внешних целочисленных ключа, комбинация которых является первичным ключом и индексом таблицы). Я использую PreparedStatements и executeBatch(), но мне может удастся нажать около 100 тыс. Строк примерно за 70 секунд на моем ноутбуке, когда встроенная база данных, которую мы заменяем (которая имеет те же ограничения и индексы внешнего ключа), делает это в 10.
Я новичок в JDBC, и я не ожидаю, что он побьет пользовательскую встроенную БД, но я надеялся, что это будет всего на 2-3 раза медленнее, а не 7x. Что-нибудь очевидное, что я, возможно, не хватает? выполняет ли порядок написания вопроса? (т.е. если это не порядок индекса?). Что посмотреть, чтобы выжать немного больше скорости?