我正在尝试使用Python集合作为MySQL表中的ID过滤器。 Python集合存储要过滤的所有ID(目前约30,000个),这个数字随着时间的推移会慢慢增长,我担心Python集合的最大容量。它可以包含的元素数量是否有限制?
您面临的最大限制是计算机上的内存。尝试输入以下命令:
s = set(xrange(10000000))
这将创建一个长度为1000万的集合,比您举的3万个例子要大得多。在我的电脑上(一台带有4GB内存的Macbook Air),这只需要几秒钟就可以运行。无论您使用什么系统,您都可能会受到类似的限制。
当然,存在绝对的上限,远在那之前,由于冲突数量和必要的内存交换,您的集合就会开始变慢。因此,这个集合有多大很重要。如果您要处理的项目超过1000万个,您可能需要考虑改用数据库。
我不知道集合中项目数量是否存在任意限制。很可能这个限制与可用内存有关。