c++ - 将 SQL 数据库移动到 ram

标签 c++ sql sqlite

<分区>

我有一个大约 100 MB 的 SQLite 数据库。为了加快访问速度,我想到了先将这些数据库移动到内存中,然后直接从内存中读取。在我有多个读取访问权限之后,我认为这会加快应用程序的速度。所以,我的问题是如何将这个数据库移动到 RAM 中,我可以通过 sqlite3_open() 访问它,或者如果我的想法是胡说八道并且将数据库留在磁盘上比通过映射将它移动到 Ram 更快.
非常感谢!

最佳答案

看这个:

https://www.sqlite.org/inmemorydb.html

您仍然需要打开您的第一个数据库并将数据复制到内存中,方法是在内存中打开一个新数据库,并将您在磁盘上的拷贝中的所有数据插入到您在内存中打开的数据库中。

它可能运行得更快,但优化查询或数据库结构可能会更好。我会考虑使用索引。如果您知道您的数据是根据其中一列的顺序插入数据库的,另一种选择是尝试在您的 where 子句中使用 RowId。

也可以看看这些:

http://www.sqlite.org/optoverview.html

http://www.sqlite.org/lang_createindex.html

关于c++ - 将 SQL 数据库移动到 ram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20704516/

相关文章:

c++ - 使按值常量传递的参数有什么意义?

c# - LINQ删除错误(C#)

sqlite - Pandas/iPython 笔记本(Jupyter)中 DataFrame/table 中的 GROUP BY 行?

c++ - Qt-有没有办法优先调整子窗口小部件的大小

c++11 以微秒精度获取当前时间

C++ char序列函数总是返回空字符串

mysql - 棘手的 MySQL JOIN 查询

sql - 搜索整个数据库而不是单个表

java - 在 SQLite 中存储数组列表的数组列表

android - 找不到具有 "images"表的 Cordova SQLitePlugin