2009-07-25 111 views
1

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

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

内存数据库有什么好处?

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

回答

1

SQLite拥有内存数据库的原因并不是真正的性能。在实践中,除非内存不足,否则拥有一个文件并不比真正慢。它主要用于临时缓存或测试。例如,您可以使用内存数据库来进行单元测试,这样您就不需要执行生产数据。或者,如果您需要SQL功能,则可以将其用作memcache的替代方案。基本上,它是在那里,所以你不要坚持数据,如果你不需要。

1

the SQLite documentation

如果文件名是“:记忆:”,然后 私有的临时内存数据库 是为连接创建。当 数据库连接关闭时,此 内存数据库将消失。

顺便说一句,你有没有找到你要找的文件?

+0

是的,谢谢,我在我的根目录中偶然发现它。它出于某种原因没有出现在我的任何搜索中。不知怎的,Datamapper忽略了我在设置指令中给出的路径,并将其转储到根目录中。我认为我给出的路径来自文件系统根目录,而不是项目根目录,并且它无法从根文件夹中找到/ db /文件夹,因此它将其放在根目录中。感谢您的提示。 – 2009-07-25 05:40:27

相关问题