【问题标题】:Temporary in-memory database in SQLiteSQLite 中的临时内存数据库
【发布时间】:2010-10-25 09:09:31
【问题描述】:

是否有可能以某种方式在 SQLite 中创建内存数据库,然后通过一些查询将其销毁?

我需要这样做以对我的数据库层进行单元测试。到目前为止,我只通过创建普通的 SQLite db 文件并在所有测试后删除 if 来工作,但是在内存中完成这一切会好得多。

那么是否可以只在内存中实例化数据库而不向磁盘写入任何内容? 我不能只使用事务,因为我想创建全新的数据库。

【问题讨论】:

    标签: sqlite jdbc


    【解决方案1】:

    使用文件名“:memory:”创建它:In-Memory Databases

    一旦与它的连接关闭,它就会不复存在。

    【讨论】:

    • 是否可以使用内存数据库然后将其复制到磁盘? (这个想法是加速写作的阻塞和耗时的操作
    【解决方案2】:

    我建议在某处安装一个 tmpfs 文件系统(仅限 RAM 文件系统)并将其用于您的单元测试。

    照常实例化 DB 文件,然后使用 rm 将它们删除 - 但没有任何内容进入磁盘。

    (编辑:很好——有人打败了我,得到了正确答案;)不管怎样,把它留在这里作为另一个选择)

    【讨论】:

      【解决方案3】:

      作为内存数据库的替代方法,您可以使用空字符串作为文件名来创建SQLite temporary database。当连接关闭时,它将被删除。与内存数据库相比,优势在于您的数据库不受可用内存的限制。

      或者,您可以在临时文件中创建数据库并让操作系统清理它。这具有便于检查的优点。

      【讨论】:

        猜你喜欢
        • 2010-12-02
        • 1970-01-01
        • 1970-01-01
        • 2018-04-07
        • 1970-01-01
        • 1970-01-01
        • 2011-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多