【发布时间】:2009-07-25 05:31:20
【问题描述】:
我正在使用 Datamapper,它允许您指定系统上数据库文件的路径,或者仅指定字符串“memory”,然后使用“in-memory”数据库。但是,我不知道这意味着什么。
“内存”数据库是纯粹基于内存的,还是会在某个时候序列化到文件系统?
内存数据库有什么好处?
是否只是为了提高效率——通过消除文件系统访问的成本?
【问题讨论】:
我正在使用 Datamapper,它允许您指定系统上数据库文件的路径,或者仅指定字符串“memory”,然后使用“in-memory”数据库。但是,我不知道这意味着什么。
“内存”数据库是纯粹基于内存的,还是会在某个时候序列化到文件系统?
内存数据库有什么好处?
是否只是为了提高效率——通过消除文件系统访问的成本?
【问题讨论】:
SQLite 拥有内存数据库的原因并不是为了性能。实际上,拥有一个文件并不比跳过它慢,除非内存不足。它实际上主要用于临时缓存或测试。例如,您可以使用内存数据库进行单元测试,这样您就不会依赖生产数据。或者,如果您需要 SQL 功能,可以使用它作为 memcache 的替代品。基本上,它就在那里,因此您不必必须在不需要时保留数据。
【讨论】:
如果文件名是“:memory:”,那么 私有的临时内存数据库 是为连接创建的。这 内存数据库将在何时消失 数据库连接已关闭。
【讨论】: