今天遇到一个问题,就是dump出来的backup无法还原; 交给相关Team处理,得到的反馈是编码集问题;新的db要求是utf8mb4编码集;
- 简单了解了一下,原来mysql utf8有两种, utf8mb3(i.e.默认的utf8) 以及 utf8mb4; utf8 是众所周知的可变长unicode编码, 最长编码长度为4个字节, 最短一个字节。 utf8mb3 只至多采用3个字节, utf8mb4是至多采用4个字节;
- 为什么存在缩水版的utf8 mb3 解释似乎是perfermance 问题.. 这点很奇怪,utf本来就是变长编码;一个字符,无论式utf8mb3 or utf8mb4 应该码都是一样的。只是utf8 mb3 不能编码一些4个字节的信息;
- MySql 8.0 以后的版本, 应该两者之间不存在性能差异;
- 我这个场景是 drop recreate table, 在创建时,指明了db的编码utf8mb3, 搞不懂为何不行;