日期:2014-05-16 浏览次数:20746 次
项目中有个情况:老一辈人习惯用varchar保存字符串,如:
`UPDATE_TIME` VARCHAR(14) NOT NULL COMMENT '最后更新时间,如:20121027100737'。
心中猜测,数据库既然提供了日期类型,用它必然好于使用varchar。但一直未能找到直接证据,直到看到《MySQL性能调优与架构设计》。P152
?
?
?
首先:
1. 通过选用更“小”的数据类型减少存储空间,使查询相同数据需要的IO资源降低;
2. 通过合适的数据类型加速数据的比较;
?
而日期类型的存储长度如下:
?
?
类型 ? ? 存储长度(字节)
DATETIME 8
DATE 3
TIME 3
YEAR 1
TIMESTAMP 4
?
显然DATETIME的长度小于VARCHAR(14)?,故而从IO资源降低上来说是好了。
?
另外,要是选,也是选smallint啊,又小,又比varchar等字符类型快(cpu对比)
?
?