Mysql存储类型选择

基本原则

1.选择小的类型 -- 保证足够的同时越小越好

可以选择INT就不选择BIGINT

2.简单 

可以用整型就不用字符型,字符型占用空间运算较难等

3.尽量避免NULL

整型 

TINYINT-8

SMALLINT-16

MEDIUMINT-24

INT-32

BIGINT-64

其中有unsigned属性则无负数,也就是大概会提升一倍的表示范围

浮点数

FLOAT-4

DOUBLE-8(浮点数默认计算类型)

DECIMAL(一般用于绝对小数点精确要求的数据)

当要存储的数很大时可以使用BIGINT代替DECIMAL,根据小数位数乘以对应倍数即可,还可以将整数部分与小数部分分开存放

字符型

VARCHAR-存储可变长字符串

适用场景:

最大长度比平均长度大很多;

列的更新很少;

使用了UTF-8复杂字符集

CHAR-定长

使用于长度很短且接近定长的字符串,如MD5加密后的字符串

BLOB-长二进制字符

TEXT-长字符串

枚举-将字符串以整数类型存储

日期和时间类型

1.DATETIME--适用于大范围值

2.TIMESTAMMP范围较小,与时区有关,能自动更新(尽量使用)

注意:

有些整数类型可以添加宽度如INT(11),这不会改变INT能表示的范围,只是在某些客户端限制了能显示的字符的个数

原文地址:https://www.cnblogs.com/ming-szu/p/9408535.html