2009-07-30 11 views
10

5列の単純なsqliteテーブルに1millionのレコードを挿入したばかりです。 jdbcドライバを使ってJavaで18時間もかかったのです!私はpython2.5で同じことをやったが、それは1分もかからなかった。選択クエリの速度は良いようです。私はこれがjdbcドライバの問題だと思う。javaのjdbcドライバを使用した遅いsqliteの挿入

javaのsqlite3の高速ドライバはありますか?

スキーマ移行スクリプトでは、多数の行を挿入する速度が重要です。これを行う必要がない場合は、外部スクリプトを使用して移行する必要はありません。

EDIT:connection.setAutoCommit(false)で固定。 私に解決策を示唆してくれたMark Rushakoffに感謝します:)

答えて

19

あなたのクエリを自動コミットしましたか?それはなぜそれがずっとかかったのかを説明することができます。 begin/endでラップして、挿入するたびに完全なコミットを行う必要はありません。

This pageはbegin/endトランザクションについて説明し、FAQは挿入/自動コミットについて説明します。

+0

これは、おかげで、ありがとう! –

+0

改善されたパフォーマンス1000x ...ありがとう – Ewoks

2

さらに最適化したい場合は、挿入クエリをまとめてバッチ処理することができます。 1000個のインサートを1000個のインサート1000個に変更することができます。

関連する問題