日期:2014-05-16  浏览次数:20640 次

MySQL 利用日期类型 优于 字符串类型的 理由

项目中有个情况:老一辈人习惯用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对比)

?

?