以前は、Hibernate でバッチ挿入を機能させようとしていました。私はすべてを試しました:設定のために、batch_size(50)、order_inserts(true)、order_updates(true)、use_second_level_cache(false)、use_query_cache(false)を設定しました。私が使用したセッションではsetCacheMode(CacheMode.IGNORE)
、setFlushMode(FlushMode.MANUAL)
. それでも、MySQL クエリ ログは、各挿入が別々に行われていることを示していました。
rewriteBatchedStatements=true
機能した唯一のことは、JBDC接続文字列の設定でした。私のアプリケーションは任意の JBDC データベースをサポートするはずであり、DB 固有の最適化を回避しようとしているので、これは心配です。
MySQLドライバーがデフォルトでバッチステートメントをサポートしていないため、休止状態が実際にバッチステートメントを使用できない唯一の理由はありますか? 他のドライバーはどうですか?バッチ挿入をサポートできるように、接続文字列にオプションを追加する必要がありますか? 特定のデータベースが必要な場合は、SQL サーバー、sqlite、Postgres などを考えてください。