【发布时间】:2012-03-28 14:21:09
【问题描述】:
我正在使用 Python 计算一些非常大的数字,我想将之前计算的结果存储在 Berkeley DB 中。
问题是Berkeley DB必须使用字符串,我必须为计算结果存储一个整数元组。
例如,我得到(m, n) 作为结果,一种方法是将其存储为"%d,%d" % (m, n) 并使用re 将其读出。我还可以使用pickle 或marshal 存储元组。
哪个性能更好?
【问题讨论】:
-
为什么要使用
re来解析它?你为什么关心性能?如果您关心性能,为什么您期望解释保存的数据成为瓶颈?您的“先前计算的结果”的性质是什么?为什么不存储一个包含多个列的元组?从什么时候开始,数据库将您限制为仅使用字符串?这些都没有任何意义。 -
@KarlKnechtel:Berkeley DB 没有列。它是一个键值数据库,是众多数据库之一:Tokyo / Kyoto Cabinet、Memcached、Cassandra、Dynamo、Voldemort 等。
-
@KarlKnechtel 我使用的是 Berkeley DB,所以我没有多列,如果我使用的是其他数据库,我就不用担心了。见stackoverflow.com/questions/2399643/…
标签: python performance serialization deserialization