目前,我的程序在内存中有很多会话。 Session是unsigned int ID
的对象,一些变量+可能的长大小std::map
(会话与会话的大小不同)。
我想将一些会话卸载到磁盘,但不知道如何在磁盘上组织结构,以便有机会在磁盘上快速查找会话以在需要时加载它。如何通过磁盘上的ID快速查找会话?也许是一些索引,但不知道如何使用它们......或者可能是一些额外的变量?
* SQL数据库* 不是我的变体,因为稳定性,资源过度使用,可移植性,兼容性等等需要组织像磁盘上其他数据库那样的东西。
谢谢,对不起我的英语。如果有错误,请编辑我的文字
答案 0 :(得分:6)
使用数据库,这正是它们的好处。
答案 1 :(得分:6)
您可以将SQLite
库用于此目的。它也有C/C++ interface。
此外,SQLite是一个cross-platform and portable数据库。它只是一个文件(您可以拥有单个文件),就像硬盘上的任何其他文件一样。您不需要为此安装任何大型软件。它轻巧方便。
答案 2 :(得分:2)
为什么在如此多的网站上这么多人回答一个简单的问题:“你为什么要那样做?”或提供不回答此人的替代方案? (阅读本页底部的“你的答案”框)可能有更好的方法,或者这个人几乎浪费时间。但是,他们可能只是为了尝试和提出解决方案的乐趣,无论它的功能如何。 @abrahab显然想要这样做(并且他试图让它变得非常清楚)所以让他,回答他的问题,或者如果你不知道答案保持安静。
使用数据库更容易,但如果这是您想要做的,这将起作用并且性能应该非常好。如果你想在记录中搜索特定的值,你可以用这些值构建另一个btree,但是那时要认真考虑下去DB路径。