1 基本数据类型
简单,尽量避免NULL
1.1 整数类型
| 类型 | tinyint | smallint | mediumint | int | bigint | -unsigned |
|---|---|---|---|---|---|---|
| 空间 | 8 | 16 | 34 | 32 | 64 | 不变 |
| 范围 | -2(N-1) ~2(N-1) -1 | - | - | - | - | 0~2N |
int(11)指定位数,对于大多数应用没有意义;不会限制合法范围,只是规定了一些交互工具显示字符的个数。
1.2 实数类型
float, decimal
1.3 字符串类型
- varchar 变长字符串
- char 定长字符
- BLOB 存储很大数据,二进制方式,没有排序规则和字符集
- TEXT 存储很大数据,字符方式,有字符集和排序规则
使用枚举代替字符串,enum(“fish”, “apple”),但是枚举内部仍然是数字
1.4 枚举
1.5 日期和时间类型
- datetime 1001-9999 精度为秒,与时区无关,8个字节存储
- timestamp 4个字节存储
- 使用bigint存储毫秒级别的时间戳
1.6 位数据类型
bit(1-64) 0或1的字符串 谨慎使用
1.7 标识符
unsigned, auto_increment
存储UUID时,应当移除’-’
2 范式
混用范式与反范式
3 Alter table
- 在一台不提供服务的机器上执行alter table
- 影子拷贝
参考文献
高性能mysql
本文详细介绍了MySQL中各种数据类型的特性,包括整数、实数、字符串、日期时间、位数据等,探讨了如何合理选择数据类型以提高数据库性能。同时,文章还提到了范式与反范式的应用原则,以及在不提供服务的机器上执行alter table操作的策略。

被折叠的 条评论
为什么被折叠?



