mysql interactime_timeout参数_MySQL字段比较:dateime跟timestamp

我相信在绝大部分的mysql应用中,存放日期时间的字段类型都会选择使用datetime或者timestamp类型,datetime的日期范围从1001到9999年,采用8位整数将日期转换为'YYYYMMDDHHMMSS'的形式进行存放.timestamp就是unix时间戳(1970-2038),采用4为整数进行存储,并且默认提供自动更新功能.所以,很多人或者文章都会说在时间范围允许的情况下最好采用timestamp进行日期类型值得存储.

我做了对于datetime和timestamp字段进行不同情况下的查询操作的benchmark(使用jdbc作为app层进行数据获取),得到如下结果:

无索引

4504c23cafd34e44c67a477663188f96.png

有索引

719aaad0c6c449e3f5cf213ca200afc9.png

得出结论:如果在查询时以unix时间戳形式获取数据,那么查询效率会更高,因为timestamp的存储就是时间戳,无需转换,而如果要获取时间的ansic格式,datetime将会更快,因为其存储格式和ansic格式就很接近了.如果要考虑到硬盘存储空间,显然是timestamp更小,但是对于100w数据,也只是小4m左右,所以对于现在时间的宝贵性,硬盘空间的价值就显得不那么重要了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值