Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Datamapper,它允许您指定系统上数据库文件的路径,或者仅指定字符串“memory”,然后使用“in-memory”数据库。但是,我不知道这意味着什么。
“内存中”数据库是纯粹基于内存的,还是在某个时候被序列化到文件系统?
内存数据库有什么好处?
仅仅是为了提高效率——通过消除文件系统访问的成本吗?
SQLite 拥有内存数据库的原因并不是为了性能。实际上,拥有一个文件并不比跳过它慢,除非内存不足。它实际上主要用于临时缓存或测试。例如,您可以使用内存数据库进行单元测试,这样您就不会处理生产数据。或者,如果您需要 SQL 功能,您可以使用它作为 memcache 的替代品。基本上,它就在那里,所以如果你不需要的话,你不必持久化数据。
从SQLite 文档:
如果文件名是 ":memory:",则为连接创建一个私有的临时内存数据库。当数据库连接关闭时,这个内存数据库将消失。