在进行数据库设计时,如果能够选择最恰当的数据类型就可以为后期的数据库调优打好最坚实的基础
选择数据类型的原则
更小的通常更好
例如存储订单状态字段很多时候使用0、1、2表示使用tinyint类型存储就够了,没必要搞个int、long甚至varchar来。
越小的数据类型代表着占用越小的磁盘、内存和CPU,也就代表着越快的速度。当然,不要为了追求小而不考虑实际的场景、通常选择一个不会超过范围的最小数据类型就好了
越简单越好
数据类型越简单操作所需要的CPU周期就越少,例如说ip地址通常使用int而不是varchar来存储
尽量避免NULL
包含NULL的列会使得索引、索引统计和值比较都变得复杂
各个数据类型占用的字节
数据类型 | 所占字节(byte) |
---|---|
tinyint | 1 |
smallint | 2 |
medumint | 3 |
int | 4 |
bigint | 8 |
float | 4 |
double | 8 |
decimal(m,d) | m+2 |
date | 3 |
datetime | 8 |
timestamp | 4 |
char(n) | 1-n-255 |
varchar(n) | 1-n-65532 |
tinyblob | 255 |
blob | 65535 |
medumblob | 16777215 |
longblob | 4294967295 |
tinytext | 255 |
text | 65535 |
medumtext | 16777215 |
longtext | 4294967295 |