上百万的纪录如何有最好的存储结构?
上百万纪录,每个纪录有一个ID,一个数值。
一个进程接受纪录,整理,然后还要使用。
然后还要使用。
问题:
记录数字也可能很小,只有几十条也可能。
但是最大值在800万左右。
采用什么样的结构为好呢?
[解决办法]
具体问题具体分析
可以动态数组,链表甚至可能需要使用外存(如果每个记录比较大)
[解决办法]
数据库、定长结构型文件,关键看你需要怎么调用。
[解决办法]
用数据库来管理这些记录是比较好的办法。
如果不能用数据库,建议建立两个文件,一个是数据文件,另一个是索引文件。每次需要访问数据的时候,通过索引文件来定位数据文件,然后取出一部分记录到内存(类似于cache的机制)。
[解决办法]
直接用数据库来做比较好吧,如果自己设计似乎难度很大
除非楼主有这方面的特殊要求
[解决办法]
B+ tree
[解决办法]
用数据库,再index,速度比你的if快多了
[解决办法]
20G内存的机器也不是没有,如果真的对响应时间要求这么高的话,硬件解决最简单
[解决办法]
我会考虑哈希表
[解决办法]
如果你不想使用已经有的数据库软件的话,可以考虑一些类似的技术。
上百万纪录,每个纪录有一个ID,一个数值。
一个进程接受纪录,整理,然后还要使用。
然后还要使用。
“整理”是什么意思?有对数据的序列的约束么?
“使用”是什么意思?大量的查询么?
把问题明确之后可以进行专门的优化,把平摊时间降低到合理程度