最近在读高性能mysql这本书,这一系列文章只为读书笔记
- 选择最优的数据类型
1)更小的通常更好
一般情况下,应该尽量使用可以存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更小的磁盘空间、内存和cpu缓存,并且处理时需要的cpu周期也更少。
2)简单就好
简单数据类型的操作通常需要更少的cpu周期。例如,整型比字符操作代价更低,因为字符集和校对规则(排序规则)使字符比较比整型比较更复杂。
3)尽量避免NULL
包含可为NULL的列,对mysql来说更难优化,因为可为NULL的列使得索引、索引统计和值比较都更复杂。可为NULL的列会使用更多的存储空间,在mysql里也需要特殊处理。
通常把可为NULL改为NOT NULL带来的性能提升比较小,所以调优时没必要首先从这入手,除非你确定这会导致问题。但是,如果计划在列上建索引,就应该尽量避免设置成可为NULL的列。
2. 具体数据类型选择
1)整数类型
整数类型有这几种:TINYINT,SMALLINT,MED