【问题标题】:Does an in-memory database also have a filesystem component?内存数据库是否也有文件系统组件?
【发布时间】:2009-07-25 05:31:20
【问题描述】:

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

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

内存数据库有什么好处?

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

【问题讨论】:

    标签: database sqlite in-memory


    【解决方案1】:

    SQLite 拥有内存数据库的原因并不是为了性能。实际上,拥有一个文件并不比跳过它慢,除非内存不足。它实际上主要用于临时缓存或测试。例如,您可以使用内存数据库进行单元测试,这样您就不会依赖生产数据。或者,如果您需要 SQL 功能,可以使用它作为 memcache 的替代品。基本上,它就在那里,因此您不必必须在不需要时保留数据。

    【讨论】:

      【解决方案2】:

      来自the SQLite documentation

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

      【讨论】:

      • 是的,谢谢,我偶然在我的根目录中找到了它。由于某种原因,它没有出现在我的任何搜索中。不知何故,Datamapper 忽略了我在设置说明中给出的路径,只是将其转储到根目录中。我认为我给它的路径是来自文件系统根目录而不是项目根目录,并且它无法从根文件夹中找到 /db/ 文件夹,所以它只是将它放在根目录中。不过感谢您的提示。
      猜你喜欢
      • 1970-01-01
      • 2011-01-05
      • 2011-10-30
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2019-07-15
      相关资源
      最近更新 更多