将 SQL 数据库移动到内存中
Moving SQL Database into ram
我有一个大约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
相关文章:
- 如何在窗口之间移动 std::unique_ptr 而不会冒内存泄漏的风险?
- vector是否为std::移动的对象连续分配内存
- 垃圾回收正在移动内存中被引用的对象,破坏Unreal4引擎中的引用
- 在预分配的内存中移动数据
- 导入的库函数是否可以在内存中移动
- 内存移动的性能与memcpy相比是两倍?
- 在数组中移动一系列元素,无需额外内存
- 将函数移动到线程(使用 lambda)时内存泄漏
- 使用STD ::移动时的内存泄漏
- C 指向对象,然后移动其内存位置
- 从字符串和向量移动以不拥有任何堆内存
- memmove会移动元素(就像前面的方式相同),还是一次抓住整个内存块
- C 可以在程序执行过程中移动内存映射的文件(boost :: intercecess)移动
- 将指针移动到其他位置后删除分配的内存
- 将 SQL 数据库移动到内存中
- int类型的指针在递增后移动内存中的1个地址
- 如何将对象移动到未初始化的内存中
- C++在内存中逐字节移动
- 使用内存移动构造函数
- 在字符指针中用内存移动替换字符