《MySQL是怎样运行的》学习笔记

MySQL 中的 utf8 和 utf8mb4

MySQL中 utf8 使用 1~3 个字节来表示一个字符,如果大家有使用 4 字节编码一个字符的情况,比如存储一些 emoji 表情啥的,那请使用 utf8mb4。

现在一般公司的开发规范都是直接选择 utf8mb4 了吧

MySQL 字符集转换

系统变量 描述
character_set_client 服务器解码请求时使用的字符集
character_set_connection 服务器处理请求时会把请求字符串从character_set_client转为character_set_connection
character_set_results 服务器向客户端返回数据时使用的字符集

从这里看出在服务器端就会涉及到 3 种字符集设置 & 2 次字符集转换。

SET NAMES 字符集名;

这一条语句产生的效果和我们执行这3条的效果是一样的:

SET character_set_client = 字符集名;

SET character_set_connection = 字符集名;

SET character_set_results = 字符集名;