[译文] MySQL:字符集、Unicode 和 UCA 兼容的排序规则
在 MySQL 8.0(MySQL 数据库服务又名 MDS 的版本)中,默认字符集已从latin1更改为ut8mb4。默认排序规则是utf8mb4_0900_ai_ci但这意味着什么?为什么utf8mb4_0900_*是推荐的?
诸如utf8mb4_unicode_520_ci和utf8mb4_0900_ai_ci 之类的整理基于Unicode 整理算法(UCA)。归类中的数字定义了 UCA 版本:
- hUCA 9.0.0(推荐)
示例:utf8mb4_0900_ai_ci - UCA 5.2.0(不推荐,请参阅下面的问题)
示例:utf8mb4_unicode_520_ci
MySQL 8.0 中的默认排序规则是utf8mb4_0900_ai_ci
现在让我们看看这些排序规则的用途。我们从创建这样的表开始:
CREATE TABLE
collation_ex
(
id
int NOT NULL AUTO_INCREMENT,
0900_ai_ci
varchar(50) CHARACTER SET utf8mb4
COLLATE utf8mb4_0900_ai_ci DEFAULT NULL,
unicode_520_ci
varchar(50) CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
general_ci
varchar(50) CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (
id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci