ファイルに既存のデータベースがあります。私はメモリにデータベースをロードしたい。私はたくさんのクエリを実行しており、データベースはそれらのクエリを固定するために非常に大きくはありません(< 50MB)。これを行う方法はありますか?既存のSQLiteデータベースをメモリにロード
答えて
50 MBはOSファイルキャッシュに簡単に収まります。何もする必要はありません。
ファイルロッキングの結果、オーバーヘッドが目に見えない場合は、exclusive locking modeの使用を検討してください。
RAM driveを作成し、データベースにHDD/SSDホストファイルの代わりにこれらのファイルを使用させることができます。あなたが非常識な性能要件を持っているなら、あなたはインメモリデータベースに行くこともできます。
メモリ内のソリューションを実行する前に:「多くのクエリ」とは何ですか?クエリごとに予想される応答時間は何ですか?データベースプログラムがパフォーマンスのボトルネックではなく、アプリケーションコードが遅いか、非効率なクエリ/インデックスが欠落する可能性があります。
私はSQLiteがデータベースへの同時アクセスをサポートしていないと思うので、多くのパフォーマンスが浪費されます。書き込みがまれにしか発生しない場合は、データベースのコピーを保持し、異なるスレッドが異なるSQLiteインスタンスを読み取るようにすることでパフォーマンスを向上させることができます。
CLとRayによって提案されたソリューションのいずれも、ファイルシステムのオーバーヘッドの単純な事実(データがキャッシュされているかどうか、および/またはRAMドライブにあるかどうかにかかわらず)これらの測定値は役に立ちますが、ファイルシステムを完全に破棄することはできません)。
SQLiteでは複数の並行読者が許可されますが、書込みトランザクションがあれば読者は読者が完了するまでブロックされます。
SQLiteでは、メモリ内のデータベースを1つのプロセスで使用できますが、そのプロセスには複数のスレッドが含まれている可能性があります。
永続SQLiteデータベースをメモリ内のデータベースとしてロード(オープン)することはできません(少なくとも、最後に調べたとき)。 2番目のインメモリー・データベースを作成し、インメモリー・データベースをロードするために永続データベースから読み取る必要があります。しかし、データベースがわずか50 MBであれば、それは問題ではありません。サードパーティのツールでは、メモリ内のSQLiteデータベースを保存してからリロードすることができます。
- 1. 高速計算のために既存のSqliteデータベースをメモリにロード
- 2. phonegapに既存のSQLiteデータベースを使用
- 3. Cayenneの既存のSQLiteデータベースを使用
- 4. 既存のsqliteデータベースを開く - HTML5
- 5. 既存のSQLiteデータベースからのGeoPoints
- 6. Androidタブレットの内部メモリ(API 23)にSQLiteデータベースを保存
- 7. androidの既存のsqliteデータベースのデータを更新するには
- 8. データベース全体をメモリにロード
- 9. androidに既に存在するsqliteデータベースにアクセスする方法
- 10. Androidで既存のSQLiteデータベースを使用する
- 11. Android SQLite Nullポインタ例外既存のデータベースを使用
- 12. cordova-plugin-sqliteのアップデート - 既存のデータベースの読み込み方法?
- 13. 既存のデータベース
- 14. データをSQLiteデータベースに保存
- 15. SQLiteデータベースを保存
- 16. 既存データベースのORMLite
- 17. SQLiteでの一時的なメモリ内データベース
- 18. メモリsqliteデータベースiOSでの問題?
- 19. 私の既存のSQLiteデータベースを迅速にアクセスする方法3
- 20. パッチの更新中に既存のSQLiteデータベースを削除しない方法
- 21. 既存のゲームオブジェクトを2D配列にロード
- 22. 既存のマットにイメージをロード
- 23. SQLiteテーブルが存在しません既存のSQLiteデータベース(およびテーブル)の例外
- 24. Symfony3既存のデータベースをインポート
- 25. アンドロイド - SQLiteのデータベース保存
- 26. SQLiteデータベースに値が既に存在するか確認してください。
- 27. 既存のスキーマからテーブル関係図を生成する(Sqliteデータベースの場合)
- 28. 既存のsqliteデータベースを読み込み、イオン性のクロムブラウザで実行する
- 29. エンティティフレームワークまたは他のフレームワークを使用して既に既存のデータベースをUWPにロードする方法
- 30. 既存のデータベースのseed_fu