【问题标题】:What's the proper column type to save urls in MySQL?在 MySQL 中保存 url 的正确列类型是什么?
【发布时间】:2011-01-12 14:27:10
【问题描述】:

我一直在使用varchar(300),但我也注意到更长的网址。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    截至目前:

    TEXT

    >= MySQL 5.0.3 使用 VARCHAR(2083)

    check this answer

    【讨论】:

      【解决方案2】:

      从技术上讲,HTTP 对 URL 的最大长度没有限制。阅读this SO 帖子。

      所以varchar 不会有帮助,你必须使用TEXT

      【讨论】:

      • 您引用的帖子指出 url 的最大长度为 2048。您如何陈述“技术上 HTTP 不会限制 URL 的最大长度”?
      【解决方案3】:

      如您所见here,浏览器可以处理不同的 URL 长度(并且非常长)。所以你应该考虑使用text作为数据类型。

      【讨论】:

        【解决方案4】:

        使用TEXT,每个URL都够用了。

        请注意,使用长 URLs,您将无法创建涵盖整个 URL 的索引。如果需要UNIQUE 索引,则应计算URL 哈希,单独存储哈希并索引哈希。

        【讨论】:

        • “它”是什么意思? TEXT 是标准且受支持的功能,MD5 哈希也是(并且MySQL 包含计算哈希的函数)。
        • 我也是这样做的。此外,值得考虑对各种哈希函数进行基准测试,我选择了 MD5,因为它比其他所有函数都快一点,但 MD4。
        • PHP 中好像没有MD4
        • @Nikola: MySQL 缺乏 MD4 支持,但如果支持,它肯定是首选的哈希函数。
        • @Quassnoi,是的,你是对的,但我没有在 MySQL 中散列(它显示较慢),YMMV。 @eugene y,哈希是表中的列之一。
        猜你喜欢
        • 2023-03-20
        • 1970-01-01
        • 2017-12-17
        • 2017-12-19
        • 2020-04-21
        • 2017-12-29
        • 2015-05-29
        • 1970-01-01
        • 2013-01-22
        相关资源
        最近更新 更多