【发布时间】:2019-09-08 01:38:52
【问题描述】:
我有十亿级的键值对,需要为它们创建一个查找表。我目前使用本机 python dict,但是,将这些对添加到 dict 中似乎非常慢,并且消耗大量 RAM(数百 GB)。我需要的选项是 1)将每一对添加到 dict 和 2)查找几百万次。我有什么推荐的方法来满足要求吗?我有一台具有几百 GB 内存(但不足以将所有内容存储在内存中)和大量 CPU 内核的机器。
【问题讨论】:
-
“慢”到底是什么意思?你是怎么测量的? “大量” RAM 究竟有多少?
-
考虑 RAM 的大小与磁盘的大小。这就是数据库写入磁盘块并在查询时使用 BTree 访问所需内容的原因。你需要一个数据库
-
如果您需要任何有用的建议,您将不得不提供有关您的用例的更多详细信息。
-
至少告诉我们那个dict的使用模式是什么:你在查找什么数据?多久等等...
-
需要使用数据库是正确的,但即便如此,那里的数据量也必须分块查找,而不是一次查找全部。
标签: python database dictionary