私は、より多くのストレージ オブジェクト (それぞれが多数の単純な変数を格納する) を管理するアプリケーションを使用しています。これらのオブジェクトは、外部データベース、つまり MySQL と SQlite を介して保存されます。
私が現在行っていることは、起動時にすべてのオブジェクトをメモリにロードすることです (少なくとも現時点では、直接アクセスが必要です。遅延ロードはオプションではありません)。オブジェクトの値が変更されると、新しいスレッドで対応する update ステートメントを呼び出すことにより、データベース内のオブジェクト自体が自動的に更新されます。データベース通信はPreparedStatements
、 を使用して純粋な JDBC で処理されます。接続はプールされません。アクティブな接続は一度に 1 つだけです。
前述のように、複数の操作をデータベースに書き込む必要がある場合は遅くなる傾向があるため、プロセス全体に満足していません。これを改善する方法を探しています。一度に複数の更新を処理するバッチ操作を使用するキューを実装しようとしましたが、これは、更新値ごとに個別のキューがあり、少しオーバーヘッドがあるように見える場合にのみ可能であるようです。接続プールを追加すると、MySQL が高速化される可能性がありますが、SQLite に関しては何も変わりません。
この場合、ベストプラクティスのようなものはありますか? ORM への切り替えは役に立ちますか?