【问题标题】:Why is MySQL's default collation latin1_swedish_ci?为什么 MySQL 的默认排序规则是 latin1_swedish_ci?
【发布时间】:2011-10-09 20:08:23
【问题描述】:

当其他选项看起来更合理时,将latin1_swedish_ci 设置为编译默认值的原因是什么,例如latin1_general_ciutf8_general_ci

【问题讨论】:

标签: mysql collation


【解决方案1】:

latin1_swedish_ci 是单字节字符集,与utf8_general_ci 不同。

latin1_general_ci 相比,它支持欧洲语言中使用的各种额外字符。因此,如果您不知道您将使用哪种语言,或者您被限制只能使用单字节字符集,那么这是一个最佳选择。

【讨论】:

  • 我喜欢这个答案,因为它试图客观地证明选择拉丁瑞典语的合理性。然而,从社会的角度来看,接受的答案似乎更合理地解释了为什么特别选择瑞典语。
  • 这当然有可能是作者的推理,他是瑞典人只是巧合。瑞典人想要(并且知道)支持其他欧洲字符似乎是合理的。
  • -1 接受的答案可能只是一种意见,但它比这个答案合理 100 倍。此外,你可以看到“写它的家伙”也以他女儿的名字命名 MariaDB,以他的儿子命名 maxDB。
  • "latin1_general_ci 它支持欧洲语言中使用的各种额外字符" - 明确一点,utf8_general_ci 与 utf8_unicode 不同,它确实广泛支持欧洲语言的特定字符。我看不出比“latin1_swedish_ci”有什么优势。还是我错了?
  • 例如 CHAR(2) latin1 使用 2 个字节,CHAR(2) utf8mb4(即全 utf8)使用 8 个字节。我使用 latin1 存储 2 位国家代码,因为永远不会有非欧洲字符
【解决方案2】:

The bloke who wrote itSwedish company 的联合负责人。

可能出于类似原因,Microsoft SQL Server 的默认语言 us_english。

【讨论】:

  • 他是芬兰人,但芬兰语和瑞典语共享几乎相同的特殊字符,因此它们共享相同的不区分大小写的排序规则
  • 谈论“良好的默认设置”。这当然不是。很高兴在 20 年后看到这一点?他们将其更改为合理的默认值,例如utf8_general_ci。干得好,MySQL!
  • 是的,你是对的,他命名为 MariDB(妻子的名字是 Maria)和 MaxDB(他的儿子的名字是 Max)。但为什么他留下他女儿的名字..! :) 哈哈。 !
猜你喜欢
  • 2011-06-13
  • 2021-01-28
  • 2018-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多