笔记大纲
- MySQL的请求流程
- 常见的存储引擎
- 字符集和比较规则
1.MySQL的请求执行流程
2.常见的存储引擎
存储引擎 | 特点 |
---|---|
Archive | 数据存档、记录插入后无法修改 |
BlackHole | 黑洞,丢弃写操作,读操作返回空内容 |
CSV | 数据的存储形式以逗号分隔数据项 |
Federated | 用来访问远程表 |
InnoDB(最主要) | 使用最为广泛、默认的引擎,支持事务、行锁等 |
Memory | 数据存储在内存中 |
Merge | 多用于管理多个MyISAM引擎表的表集合 |
MyISAM | 早期的、非实物处理的存储引擎 |
NDB | MySQL集群专用的存储引擎 |
3.字符集和比较(排序)规则
3.1 ASSCII字符集
一共收录了128个字符包括空格、标点符号、数字、大小写字母等。
3.2 Unicode字符集
为全世界所有的字符分配了唯一的数字编码,每当有新的字符,Unicode字符集就不断增加。
4.MySQL中支持的字符集/编码方式和比较规则
4.1 utf8和utf8b4
MySQL中没有明确区分字符集和编码的区别,UTF-8编码方式在表示一个字符的时候使用1-4个字节,但是大部分的字符用1-3个就够了。
- `utf8mb3`:MySQL中的uft8就是uft8mb3,它是UTF-8编码的阉割版本,使用1~3个字节表示一个字符。
- `utf8mb4`:原滋原味的UTF-8编码,使用1~4个字节表示一个字符。在MySQL8.0后,默认的编码方式就是utf8mb4。
4.2 比较规则/排序规则
一种字符集可以包含多种比较规则,例如utf8就支持多达二十多种比较规则,最常见的是 utf8_general_ci。 比较规则的命名可以看出比较规则的分类:
- utf8_后面跟着的应用的语言,例如utf8_spanish_ci表示西班牙语的比较规则。
- 后缀是_ci的,表示不区分大小写。
- 后缀是_cs的,表示区分大小写。
- 后缀是_bin的,表示以二进制进行比较。
字符集和比较规则可以在4个级别规定:服务器级别、数据库级别、表级别、列级别。