我有以下格式的条目(总共约8800万):
userid age test value
111 33 SODIUM 140
111 34 POTASSIUM 4.1
333 65.4 CHLORIDE 107
444 24 BICARBONATE 24
我需要为前三列中的value
创建快速查找,前三项(即userid
,age
,test
)。
重复查找此数据的最佳方法是什么?我想到的是创建一个字典,其中keys
是元组(userid
,age
,test
),值为value
。在过去,我使用了类似的方法,这种方法在更小的数据上非常慢。
答案 0 :(得分:5)
你应该使用数据库,你有太多的条目。数据库的工作是对如此多的数据进行查找和索引。
答案 1 :(得分:3)
如果您不关心内存使用情况:请坚持使用dict。请注意,除非您拥有 lot 内存,否则上述情况可能会耗尽您的所有内存。一点一点地做,看看你可以加载多少。快速测试表明您至少需要16GB的内存。
否则:使用数据库。 SQLite包括在内,PostgreSQL很适合专业用途,但是有很多替代品,包括Redis等NoSQL,这可能会很好。
答案 2 :(得分:0)
您必须使用数据库。尝试redis
以获得非常轻量级的快速查找替代方案。您可以使用键的前三个值。
redis
甚至会给你一些关于数据的精彩操作,你可以省去往返。