在MySQL中存储非常大的内容

时间:2018-03-22 03:26:31

标签: python mysql gmp gmpy

是否有可能在MySQL中高效存储大量内容?不像bigint那样大,更像1000 Catalan number左右,并且至少有数百个。Google Play Services。成千上万的可能性。存储和加载值的速度是一个优先事项。

这些数字是使用Python的GMP包装器gmpy2创建的。如果存储的数字可以以相同的格式访问,那么它会很好,但如果没有,我总是可以写一个转换器。

1 个答案:

答案 0 :(得分:1)

我会将mpz整数转换为Python字符串(对于v2)或字节(对于v3)并将其保存为mysql中的BLOB实体。以下是使用Python 2的相关gmpy2命令。

>>> import gmpy2
>>> gmpy2.mpz(1234)
mpz(1234)
>>> gmpy2.to_binary(mpz(1234))
'\x01\x01\xd2\x04'
>>> gmpy2.from_binary('\x01\x01\xd2\x04')
mpz(1234)
>>> 

gmpy2.to_binary会将任意gmpy2个对象转换为二进制字符串。 gmpy2.from_binary会将二进制字符串转换回gmpy2对象。对象的类型被编码为二进制字符串,因此您不需要跟踪对象的类型。

免责声明:我维持gmpy2。