【问题标题】:store 300 digit number in sql在sql中存储300位数字
【发布时间】:2017-07-25 04:16:46
【问题描述】:

我可以使用哪种数据类型在 SQL 中存储非常大的整数。我正在使用 phpmyAdmin 查看数据和用于存储和检索值的 java 程序。实际上,我正在使用双线性映射,它使用从 Zp 生成的随机数,其中 p 是非常大的素数,然后对这些数字进行“提升”操作。

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

【问题讨论】:

    标签: mysql sql sqldatatypes


    【解决方案1】:

    对于 MySQL,VARCHAR(300) CHARACTER SET ascii

    • VAR,假设数字并不总是正好是 300。
    • CHAR -- BLOB 没有太大优势。
    • ascii -- 不需要 utf8 参与。
    • DECIMAL 不起作用,因为有 64 位限制。

    占用的空间将是 2+length 个字节(在您的示例中为 302),其中 2 表示 VAR 的长度。

    【讨论】:

      【解决方案2】:

      您可以使用类型CHARACTER 将它们存储为十进制数字字符串。虽然这确实浪费了一些空间,但一个优点是数据库更易于人类理解。

      您可以使用类型BLOB 将它们存储为原始二进制大端值。这是软件访问效率最高且占用空间最小的方式。但是,人类将无法轻松地在数据库中查询这些值或在转储中理解它们。

      就个人而言,我会选择 blob,除非确实需要人类使用标准查询工具来理解数据库。如果您无法使用不了解您的数据格式的工具来管理数据库,那么只需在文本中使用十进制值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-08
        • 2022-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-21
        • 2022-01-23
        相关资源
        最近更新 更多