MySQL的collation设置

MySQL的collation设置

utf8mb4

在mysql中请大家忘记utf8,永远使用utf8mb4。mysql中的utf8最多只能支持3bytes长度的字符编码,对于一些需要占据4bytes的文字,mysql的utf8就不支持了,要使用utf8mb4才行,建议使用utf8mb4。
utf8mb4中存在utf8mb4_bin,utf8mb4_unicode_ci,utf8mb4_general_ci,其中bin将字符看做二进制串进行比较,因此,大小写敏感。ci是Case Insensitive的缩写,即大小写无关。unicode比general更新,符合更新的标准,推荐使用unicode。

所谓utf8mb4_unicode_ci,其实是用来排序的规则。
对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCT、GROUP BY、HAVING语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也会影响索引创建,只不过这种影响我们感知不到。总之,凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关。

推荐:

create schema `db_name` collate utf8mb4_unicode_ci;
posted @ 2022-11-18 16:09  yangwen0228  阅读(365)  评论(0编辑  收藏  举报