在MySQL中存储非常大的int

2024-04-27 15:05:21 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能在MySQL中高效地存储大int?不像bigint那么大,更像是第1000个Catalan number左右,至少有几百个。更可能是几千。存储和加载值的速度是一个优先事项。你知道吗

这些数字是使用Python的GMP包装器gmpy2创建的。因此,如果存储的数字可以以相同的格式访问就更好了,但是如果不能,我可以编写一个转换器。你知道吗


Tags: number格式mysql事项数字速度intgmpy2
1条回答
网友
1楼 · 发布于 2024-04-27 15:05:21

我将mpz整数转换为Python字符串(对于v2)或字节(对于v3),并将其保存为mysql中的BLOB实体。下面是使用python2的相关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。你知道吗

相关问题 更多 >