(1.1)mysql 选择合适的数据类型
1、char与varchar
【1.1】char 在内容未满定义长度时,做空格填充,且字符串末尾空格会被截断;超出定义长度也会被截断。 如:char(4) 'abcde' => 'abcd'
【1.2】varchar 在内容未满定义长度时,内容是多少就占多少,以 为系统自动加上的默认结束符。额外多占一个字节。
2、浮点与定点(float/decimal)
【2.1】浮点:当插入数值超过浮点定义时设置的精度时,会四舍五入截断。
【2.2】定点:当插入数值超过浮点定义时设置的精度时,默认sqlmode下也会会四舍五入截断(但有警告)。在传统模式(traditional)下的话,会报错。
浮点在插入数据时,可能会丢失精度;做算数运算的时候也会有误差。
3.日期的选择
【3.1】date 【3.2】time 【3.3】datetime 【3.4】timestamp
如果只需要记录年,则用year类型即可;
选择原则:
(1)用最小的字段类型来记录数据且能保证扩展与可用性;
(2)如果要记录年月日时分秒,最好使用datetime类型而不是timestamp,因为timestamp记录的时间范围短很多。
(3)如果记录的日期需要让不同时区的用户使用,最好使用timestamp,因为日期类型中只有它能够和实际时区想对应。