SQLite データベースからデータを抽出する Java サーブレット (Tomcat で実行) があります。Xerial ドライバーを使用して、サーブレットから SQLite データベースにアクセスしています。
このサーブレットは、モバイル アプリが情報を要求しているときにデータを抽出します。
このデータベースは読み取り専用としてのみ使用されます (1 日に 1 回生成されます) が、膨大なデータが含まれています (メイン テーブルには 200,000 行が含まれており、別のテーブルには 10,000,000 行を超えるものがあります)。頻繁に使用される列のインデックスを作成しました。
サーバーの応答性を向上させるために、SQLite データベースの使用を最適化するためのアドバイスが必要です。
リクエストごとに新しいデータベース接続を作成し、SQL select を送信してデータを抽出し、接続を閉じます。それは良い戦略ですか?多くのリクエストを並行して実行できます。接続のプールを使用する必要がありますか? どうやって?
私の SQLite データベース ファイルは約 2Gb で、私のサーバーには大量のメモリ (16Gb) があります。読み取り専用データベースなので、メモリにロードするか、キャッシュを増やすことができます。最善の戦略とその方法は何ですか?