数据库整理差异UTF?拉丁?等等.?

Ada*_*han 2 mysql database database-design collation

数据库的排序规则是什么用途?对于HTML UTF-8,我知道一点,比如显示其他语言类型.但是对于数据库呢?我正在使用latin-1(默认),我的朋友告诉我使用UTF代替.当我问为什么时,他们不知道并说其他人使用它.所以我在质疑校对真正做了什么?它会影响速度或类似的东西吗?

dan*_*n04 9

MySQL通过在字符编码后命名的排序规则来混淆问题.它们是独立的概念.

核对确定如何关系运算符(<,>等)和ORDER BY条款排序字符串.整理所考虑的问题是:

  • 大写和小写字母是否相同?
  • 空白是否重要?
  • 重音字母排序等于非重音版本,在非重音版本之后,还是在最后?
  • 像"ch"和"ll"这样的有向图是否像单独的字母一样排序?
  • 像AᴬⒶA这样的Unicode兼容性等同物是否相同?

其中一些取决于语言.

字符编码确定文本值是如何被转换为和从字节序列.有关一个很好的介绍,请参阅绝对最低每个软件开发人员,绝对必须知道Unicode和字符集(没有借口!).

有数百种不同的字符编码,大多数特定于操作系统和语言环境的某种组合.它们中的大多数是US-ASCII的超集,所以如果确定您的数据仅为ASCII,那么您使用的编码无关紧要.

但是如果你需要其他字符,你需要一个可以处理它们的编码.对于西方语言,您的选择通常是:

两者之间的区别是:

  • 对于西欧重音字符,UTF-8需要2个字节,而Latin-1只需要1个字节.
  • 但其他角色根本无法用Latin-1表示.UTF-8可以表示每个可能的Unicode字符.