我可以使用哪种数据类型在SQL中存储真正的大整数。我正在使用phpmyAdmin来查看用于存储和检索值的数据和java程序。实际上我正在使用Bilinear Maps,它使用从Zp生成的随机数,其中p是非常大的素数,然后"提升到"对这些号码的操作。
我想将一些数字存储在数据库中,如公钥。对于这些值,我可以在SQL的表列中使用什么数据类型?
答案 0 :(得分:3)
您可以使用类型CHARACTER
将它们存储为十进制数字字符串。虽然这确实浪费了一些空间,但优点是人类更容易理解数据库。
您可以使用类型BLOB
将它们存储为原始二进制大端值。这对于访问软件和占用最少空间来说是最有效的。但是,人类将无法轻松地在数据库中查询这些值或在转储中理解它们。
就个人而言,我会选择blob,除非人们真正需要使用标准查询工具来理解数据库。如果您无法使用不了解数据格式的工具来管理数据库,那么只需在文本中使用小数值。
答案 1 :(得分:2)
对于MySQL,VARCHAR(300) CHARACTER SET ascii
。
VAR
,假设数字并不总是正好是300。CHAR
- BLOB
没有什么大优势。ascii
- 不需要utf8参与。DECIMAL
无效,因为有64位数限制。所占用的空间为2 +长度字节(在您的示例中为302),其中2为VAR
的长度。