2009-07-25 4 views
1

私はあなたのシステム上のデータベースファイルへのパスか単に "メモリ"という文字列を指定して "インメモリ"データベースを使用することができるDatamapperを使っています。しかし、私はこれがどういう意味か分かりません。インメモリデータベースにもファイルシステムコンポーネントがありますか?

「メモリ内」データベースはまったくメモリベースですか、ある時点でファイルシステムにシリアル化されていますか?

インメモリデータベースのメリットは何ですか?

ファイルシステムへのアクセスコストを削減することによって効率を上げることは簡単ですか?

答えて

1

SQLiteにメモリ内のデータベースがある理由は、実際にはパフォーマンスのためではありません。実際には、メモリを使い果たした場合を除いて、ファイルを持っているのはそれをスキップするよりも遅くはありません。実際には、一時的なキャッシングやテストのためのものです。たとえば、ユニットテストにインメモリDBを使用することができます。これにより、実動データを処理しないようにすることができます。または、SQLの機能が必要な場合は、memcacheの代わりに使用することもできます。基本的には、そこにはありませんので、にはデータを保持するためにが必要です。 the SQLite documentationから

1

ファイル名がある場合は、「:メモリは:」、そして プライベート、一時的なインメモリデータベース は、接続のために作成されます。 データベース接続が閉じられると、この メモリ内のデータベースは消滅します。

ところで、あなたが探していたファイルを見つけたことはありますか?

+0

ありがとう、私は私のルートディレクトリで偶然見つけました。それは何らかの理由で私の検索のいずれにも現れなかった。どうにかしてDatamapperは設定手順で私が与えたパスを無視し、単純にルートディレクトリにダンプしました。私はそれを与えたパスはプロジェクトルートではなくファイルシステムルートからのものだと思っていました。ルートフォルダから/ db /フォルダを見つけられず、ルートにドロップされました。しかし、ヒントをありがとう。 –

関連する問題