This question already has answers here:
How to create an in-memory database with schema based on an existing file database
(2个答案)
6年前关闭。
我有一个大约100 MB的SQLite数据库。为了加快访问速度,我考虑过先将这些数据库移入RAM,然后直接从内存中读取。在我具有多个读取访问权限之后,我认为这将加快应用程序的速度。因此,我的问题是如何将该数据库移动到RAM中,以便可以通过
非常感谢你!
(2个答案)
6年前关闭。
我有一个大约100 MB的SQLite数据库。为了加快访问速度,我考虑过先将这些数据库移入RAM,然后直接从内存中读取。在我具有多个读取访问权限之后,我认为这将加快应用程序的速度。因此,我的问题是如何将该数据库移动到RAM中,以便可以通过
sqlite3_open()
访问它,或者如果我的想法是胡说八道并将数据库保留在磁盘上,则比通过映射将其移动到Ram更快。非常感谢你!
最佳答案
看到这个:
https://www.sqlite.org/inmemorydb.html
您仍然需要打开第一个数据库并将数据复制到ram中,方法是在内存中打开一个新数据库,然后将磁盘上副本中的所有数据插入已在内存中打开的数据库中。
它的运行速度可能更快,但优化查询或数据库结构可能会更好。我会考虑使用索引。另一个选择是,如果您知道数据是根据列之一顺序插入数据库的,则尝试在where子句中使用RowId。
也请参阅以下内容:
http://www.sqlite.org/optoverview.html
http://www.sqlite.org/lang_createindex.html