Skeyevss 视频融合平台中MySQL 字符集与排序规则

10 阅读1分钟

Skeyevss FAQ:MySQL 字符集与排序规则

试用安装包下载 | SMS | 在线演示

项目地址:github.com/openskeye/g…


1. 推荐配置

新项目建议:

  • 字符集 utf8mb4:完整 Unicode,含 emoji 与部分生僻字;
  • 排序规则:常用 utf8mb4_unicode_ci 或 utf8mb4_0900_ai_ci(MySQL 8),按版本与语言需求选择;
  • 连接层:应用 DSN 指定 charset=utf8mb4,避免 连接 latin1 导致乱码。

2. 历史包袱 utf8

MySQL 的 utf8 实为 阉割 UTF-8(最多三字节),无法存部分字符。若库表仍是 utf8,可能出现 写入截断或报错。


3. 典型故障

  • 中文设备名乱码:表/列 charset 与连接不一致;
  • 大小写敏感查询异常:ci vs cs vs _bin;
  • 索引过长:utf8mb4 下 varchar 索引字节数更易触 767/3072 限制,需控制长度或使用前缀索引。

4. 迁移注意

ALTER TABLE CONVERT TO 大表会 锁表 或长时间 Online DDL;需 备份、灰度、观察复制延迟。


5. 与 SQLite 切换

若项目在 MySQL 与 SQLite 间切换(参见对应 FAQ),注意 类型与文本编码 差异;迁移脚本应 显式指定编码。


字符集问题 连接、库、表、列四层对齐;排查时一条 SHOW CREATE TABLE 加应用 DSN 即可定位大半。