mysql/mariadb 创建数据库时字符集和校对集的选择
发表于 : 2023年 3月 11日 12:27
首先mariadb的文档列举了其支持的
https://mariadb.com/kb/en/supported-cha ... ollations/
接下来就是选择问题,大部分情况我们需要的是UTF-8编码的字符集,推荐使用
https://dev.mysql.com/doc/refman/8.0/en ... rsion.html
接下来就是考虑校对集
stackoverflow上的这个帖子给了解释和选择建议
What's the difference between utf8_general_ci and utf8_unicode_ci?
对于现代的数据库,应该尽量使用新添加的校对集,如
所以我为项目创建mariadb数据库时,会使用下面的命令:
Character Sets
和 Collations
https://mariadb.com/kb/en/supported-cha ... ollations/
接下来就是选择问题,大部分情况我们需要的是UTF-8编码的字符集,推荐使用
utf8mb4
的字符集,因为其还支持 Basic Multilingual Plane 之外的增补字符。https://dev.mysql.com/doc/refman/8.0/en ... rsion.html
接下来就是考虑校对集
collation
,是用utf8mb4_general_ci
还是utf8mb4_unicode_ci
?stackoverflow上的这个帖子给了解释和选择建议
What's the difference between utf8_general_ci and utf8_unicode_ci?
对于现代的数据库,应该尽量使用新添加的校对集,如
utf8mb4_unicode_520_ci
所以我为项目创建mariadb数据库时,会使用下面的命令:
代码: 全选
CREATE DATABASE nextcloud
CHARACTER SET = 'utf8mb4'
COLLATE = 'utf8mb4_unicode_520_ci';