内存数据库是否也有文件系统组件?

时间:2009-07-25 05:31:20

标签: database sqlite in-memory

我正在使用Datamapper,它允许您指定系统上数据库文件的路径,或者只是字符串“memory”,然后使用“内存中”数据库。但是,我不知道这意味着什么。

“内存中”数据库是纯粹基于内存的还是在某些时候被序列化到文件系统?

内存数据库有什么好处?

是否只是为了提高效率 - 通过消除文件系统访问的成本?

2 个答案:

答案 0 :(得分:1)

SQLite具有内存数据库的原因并不是真正的性能。在实践中,拥有一个文件并不比跳过那个慢,除非你的内存不足。它主要用于临时缓存或测试。例如,您可以使用内存数据库进行单元测试,这样您就不会使用生产数据。或者,如果您想要SQL功能,可以使用它作为memcache的替代方法。基本上,如果你不需要,那么你就不会 来保存数据。

答案 1 :(得分:1)

来自the SQLite documentation

  

如果文件名是“:memory:”,那么a   私有的,临时的内存数据库   是为连接创建的。这个   内存数据库将在消失时消失   数据库连接已关闭。

顺便问一下,你有没有找到你想要的文件?