整数类型
tinyint、smallint、mediumint、int、bigint,分别占用字节数1、2、3、4、8。
整数类型后面跟的括号里的数字,表示显示长度,跟占用字节数没有关系,如int(5)表示显示5位,如28会显示成00028。所以一般int后面是11,因为int是2的32次方,其范围是-2147483648到2147483647,可以看到最长的(加上负号)是11位十进制数。
实数类型
float占4个字节,double占8个字节,decimal占65个字节,decimal是精确的实数类型,但它实际上是用字符串来存的,所以运算效率比较低。
字符类型
char
varchar
一个字符占多少字节,跟编码有关,utf8下是3个字节。
时间类型
datetime:精确到秒,存储时间比较久,到9999年。原样存入时间,原样取出时间。
timestamp:精确到秒。存储时间比较短,到2038年。存储时转换成utc时间,取出时转换为客户端时区的时间。
有跨时区的场景,用timestamp比较好。