2009-07-25 163 views
1

我正在使用Datamapper,它允許您指定系統上數據庫文件的路徑,或者只使用字符串「內存」,然後使用「內存中」數據庫。但是,我不知道這是什麼意思。內存數據庫是否也有文件系統組件?

「內存中」數據庫是純粹基於內存還是在某些時候被序列化到文件系統?

內存數據庫有什麼好處?

僅僅是爲了提高效率 - 通過消除文件系統訪問的成本?

回答

1

SQLite擁有內存數據庫的原因並不是真正的性能。在實踐中,除非內存不足,否則擁有一個文件並不比真正慢。它主要用於臨時緩存或測試。例如,您可以使用內存數據庫來進行單元測試,這樣您就不需要執行生產數據。或者,如果您需要SQL功能,則可以將其用作memcache的替代方案。基本上,它是在那裏,所以你不要堅持數據,如果你不需要。

1

the SQLite documentation

如果文件名是「:記憶:」,然後 私有的臨時內存數據庫 是爲連接創建。當 數據庫連接關閉時,此 內存數據庫將消失。

順便說一句,你有沒有找到你要找的文件?

+0

是的,謝謝,我在我的根目錄中偶然發現它。它出於某種原因沒有出現在我的任何搜索中。不知怎的,Datamapper忽略了我在設置指令中給出的路徑,並將其轉儲到根目錄中。我認爲我給出的路徑來自文件系統根目錄,而不是項目根目錄,並且它無法從根文件夾中找到/ db /文件夾,因此它將其放在根目錄中。感謝您的提示。 – 2009-07-25 05:40:27

相關問題