这可能听起来很有趣(或者可能已经习惯),我只是想将一个非常大的数据库上传到内存中(这可以从12GB上传到16GB).该文件将每天上传到内存中,随后将用于整个内存一天(等等).如果我在这个用例中使用STL映射是否可以?STL映射在64位机器上的那种数据大小是否正常工作(如果有人有任何处理这类问题的经验).也不是.对该STL映射的查询大约是每秒1000次.让我知道是否有人有任何处理此类问题的经验,或者我应该寻找其他一些数据结构(任何可以可靠地执行此操作的第三方工具)?
我的主要问题是我想实时保存我的I/O时间.但我也有mysql作为我的数据库,我需要保存这些数据.如果我使用sqlite作为"在内存"DB然后我保存mysql中的数据(在磁盘上)?我认为mysql也为类似的东西提供了"MySQL Cluster",但我不知道它实际上有多么有用.
我不认为这是个好主意.要有效地管理如此大量的数据,您需要进行许多优化.std::map可能不会针对您的场景进行优化,而且我担心您可以编写的处理它的算法将不会尽可能高效.
我建议你为你的目的使用数据库.如果您的瓶颈是磁盘I/O,那么配置您的数据库以在RAM上缓存更多信息(即使是16GB,如果您有足够的内存).