Подтвердить что ты не робот

Медленная вставка sqlite с использованием драйверов jdbc в java

Я просто ввел 1 миллион записей в простую таблицу sqlite с пятью столбцами. Мне понадобилось 18 часов в java, используя драйверы jdbc! Я сделал то же самое в python2.5, и потребовалось меньше минуты. Скорость для выбранных запросов кажется прекрасной. Я думаю, что это проблема с драйверами jdbc.

Есть ли более быстрый драйвер для sqlite3 в java?

Скорость вставки большого количества строк важна для миграции моей схемы script, и я бы предпочел не использовать внешний script для выполнения миграции, если мне это не нужно.

EDIT: исправлено с connection.setAutoCommit(false); спасибо Mark Rushakoff за то, что он намекнул мне на решение:)

4b9b3361

Ответ 1

У вас есть ваши автоответчики? Это может объяснить, почему так долго. Попробуйте обернуть их в начале/конце, так что ему не нужно делать полную фиксацию для каждой вставки.

Эта страница объясняет начало/конец транзакции, а FAQ затрагивает вставки/autocommits.

Ответ 2

Если вы хотите продолжить оптимизацию, вы можете просмотреть пакетные запросы для вставки. Таким образом, вы можете изменить 1 миллион вставок на 1000 вставок из 1000 партий.