mysql - MySQL 的最佳通用字符集和排序规则
问题描述
目前,每当我创建一个新的 MySQL 数据库时,我使用 utf8mb4 作为字符集,使用 utf8mb4_unicode_520_ci 作为排序规则,例如:
CREATE DATABASE IF NOT EXISTS db_name
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;
MySQL 是否有更新/升级的通用排序规则或字符集?
例如,如果有一个排序规则取代了 utf8mb4_unicode_520_ci,比如 utf8mb4_unicode_800_ci 或类似的东西?
谢谢你的帮助。
解决方案
您可以了解当前 MySQL 实例支持哪些排序规则。这是我的 MySQL 5.7 实例的输出:
mysql> select * from information_schema.collations where character_set_name='utf8mb4';
+------------------------+--------------------+-----+------------+-------------+---------+
| COLLATION_NAME | CHARACTER_SET_NAME | ID | IS_DEFAULT | IS_COMPILED | SORTLEN |
+------------------------+--------------------+-----+------------+-------------+---------+
| utf8mb4_general_ci | utf8mb4 | 45 | Yes | Yes | 1 |
| utf8mb4_bin | utf8mb4 | 46 | | Yes | 1 |
| utf8mb4_unicode_ci | utf8mb4 | 224 | | Yes | 8 |
| utf8mb4_unicode_520_ci | utf8mb4 | 246 | | Yes | 8 |
...
还有一堆国家校对。
MySQL 8.0 中有更新的 UCA 9.0.0 标准的新排序规则:
| utf8mb4_0900_ai_ci | utf8mb4 | 255 | Yes | Yes | 0 | NO PAD |
| utf8mb4_0900_as_ci | utf8mb4 | 305 | | Yes | 0 | NO PAD |
| utf8mb4_0900_bin | utf8mb4 | 309 | | Yes | 1 | NO PAD |
和更多的国家校对。
这里有关于新排序规则的非常好的文档:https ://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
推荐阅读
- security - 如何利用这个简单的智能合约?
- python-3.x - 有没有办法可以将我的 .exe 文件与无法提取的图像共享?
- php - 当前数据和数据之间的Woocommerce区别
- amazon-web-services - AWS DynamoDB:如何将表的元素下载为 .json 文件?
- flask - 为什么邮递员 POST 方法不提供 `json` 格式的参数?
- json - 在数据工厂中修改 JSON 数据结构
- vue.js - Vue点击防止触发器
- reactjs - React Hook 表单错误 - 类型“UseFormRegister”
' 不可分配给类型 'LegacyRef | 不明确的' - javascript - 如何在下拉菜单打开时取消它
- python - 500 Internal Server Error 某些但不是其他