MySQL数据类型有哪些优化策略
更小的通常更好
- 一般情况下尽量选择可以正确存储数据的最小数据类型
- 数据类型越小通常越快,因为他们占用更少的磁盘、内存和cpu缓存
尽可能简单
- 简单数据类型的操作通常需要更少的cpu周期,例如整数比字符操作代价更低,因为字符集和校对规则使得字符相比整型更复杂
- 应该使用MySQL的内建类型date、time、datetime而不是用字符串来存储日期和时间。ip地址应该用整型来存储
尽量避免null
- 通常情况下最好指定列为not null,除非需要存储null值
- 因为如果查询中包含null的列对MySQL来说很难优化,会导致索引、索引统计和值比较都更复杂,并且会使用更多的存储空间
- 当可为null的列被索引的时候,每个索引记录需要一个额外字节,在myisam中还可能导致固定大小的索引变成可变大小的索引
- 如果计划在列上建索引,那么最好设计为not null的列
- NULL长度是NULL
- 通常能听到使用了NULL值的列将会使索引失效,但是IS NULL会使用索引