【问题标题】:Does the chosen collation matters in this case?在这种情况下,选择的排序规则是否重要?
【发布时间】:2011-09-14 16:24:11
【问题描述】:

我的 MySQL 表中有一个 char(1) 类型的字段,它基本上只能有值 m 或 f。其当前排序规则设置为 ut8_unicode_ci。我在考虑是否应该或不应该将排序规则更改为更简单的东西,例如拉丁语,因为从未使用过完整的 utf8 字符集 - 只有字符 m 或 f。这会改变什么吗?

【问题讨论】:

    标签: mysql utf-8 collation latin


    【解决方案1】:

    排序规则是定义字符应该如何排序的规则。想象一个字母序列 - A 是第一个字母,Z 是最后一个字母(英文)。排序规则表示A 是第一个,Z 是最后一个,它还有助于定义字符的比较方式。简而言之 - 整理与您的情况无关。

    您应该将该字段设置为 tinyint,直到 MySQL 稍后提供布尔类型。这样您就可以绕过任何时候可能出现的任何字符集问题,尽管在您的示例中它们并不是真正重要的。

    【讨论】:

      【解决方案2】:

      我怀疑它是否会产生任何可衡量的差异,但如果 mf 是唯一可能的值,那么 utf8_bin 应该完全产生与 utf8_unicode_ci 相同的结果(或大多数其他排序算法)。由于该排序规则进行了简单的二进制比较,因此它肯定是最快的排序规则。

      【讨论】:

        猜你喜欢
        • 2014-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-30
        相关资源
        最近更新 更多