如何将sqlite磁盘数据库移动到C#中的内存中?
我需要从磁盘打开数据库到内存数据库,以加快操作速度,完成工作后再将其保存回文件。
磁盘数据库是一个空数据库,我想将数据从List传输到内存数据库,并使用它对非常大的数据进行排序,这会杀死List.Sort函数。数据排序后,我不再需要数据库。
答案 0 :(得分:1)
恐怕您不能do that。而且我不建议您为什么不增加缓存大小?
SQLite数据库通常存储在单个普通磁盘文件中。 但是,在某些情况下,数据库可能存储在 记忆。
强制SQLite数据库纯粹存在于其中的最常见方法 内存是使用特殊文件名“:memory:”打开数据库的。 换句话说,与其将真实磁盘文件的名称传递到 sqlite3_open(),sqlite3_open16()或sqlite3_open_v2()之一 函数,传入字符串“:memory:”。例如:
与SQlite
的每个连接都会创建一个单独的新数据库。
rc = sqlite3_open(“:memory:”,&db);完成后,没有磁盘文件 开了而是纯粹在内存中创建一个新数据库。的 关闭数据库连接后,数据库将不复存在。 每个:memory:数据库彼此不同。所以,打开两个 每个文件名为“:memory:”的数据库连接将创建两个 独立的内存数据库。
如果您要实现这样的事情,则没有任何官方方法可以做到!但是您可以:
以下是用C语言编写的代码,作为打开SQLite
文件作为in-memory
的示例:
https://www.mail-archive.com/sqlite-users@mailinglists.sqlite.org/msg15929.html