4

我有以下格式的条目(总共约 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。过去我使用过类似的方法,这种方法在小得多的数据上非常慢。

4

3 回答 3

5

你应该使用一个数据库,你有太多的条目。对如此多的数据进行查找和索引是数据库的工作。

于 2013-04-02T14:54:59.757 回答
3

如果您不关心内存使用情况:坚持使用dict。请注意,除非您有很多内存,否则上述操作可能会用完您的所有内存。一点一点地做,看看你能加载多少。快速测试表明您至少需要 16GB 的内部存储器。

否则:使用数据库。SQLite包括在内,PostgreSQL 非常适合专业用途,但有很多替代品,包括 NoSQL 的 Redis 等,这在这里可能很好。

于 2013-04-02T14:53:45.800 回答
0

哇,哇,那里。8800万?比如,88,000,000?

您必须使用数据库。尝试redis一个非常轻量级、快速查找的替代方案。您可以使用前三个值作为键。

redis甚至会给你一些漂亮的数据操作,你可以节省往返。

于 2013-04-02T14:53:02.793 回答