在sql

时间:2017-03-05 08:40:33

标签: mysql sql sqldatatypes

我可以使用哪种数据类型在SQL中存储真正的大整数。我正在使用phpmyAdmin来查看用于存储和检索值的数据和java程序。实际上我正在使用Bilinear Maps,它使用从Zp生成的随机数,其中p是非常大的素数,然后"提升到"对这些号码的操作。

我想将一些数字存储在数据库中,如公钥。对于这些值,我可以在SQL的表列中使用什么数据类型?

2 个答案:

答案 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的长度。