目前,我需要一些更有经验的数据库问题比我更有经验的人的帮助。我需要使用两组(String,Int32)对。第一个约有160,000对,第二个约有1,620,000对。问题是这个最后一个集合的字符串的每个部分都包含在第一个集合中......我想通过实现三个字典来模拟RAM内存中的数据库:
Dictionary<String, Int32>
要存储一个字符串和类似的东西它是“主键”, Dictionary<Int32, Int32>
将每个主键连接到所需的值 Dictionary<Tuple<Int32, Int32>, Int32>
以存储一对主键和另一个值。
使用两个字典并存储冗余信息,该程序分配大约200Mb的RAM。虽然这不是关键问题,但我想减少它。所以我尝试使用上面的三个字典,并且,正如我所料,分配的内存减少了很多,大约90Mb。但是,按字符串搜索时的查找性能降低了,大约是第一个简单但冗余方法花费的时间的两倍。
所以现在我正在考虑实现这个作为SQLite数据库。问题是查找时间:它应该尽可能快。使用这种类型的数据库有可能获得与RAM访问时间相似的查找时间吗?
非常感谢。