您的位置:首页 > 数据库

数据库中时间存储类型相关

2017-02-02 11:58 232 查看
1.背景:

  之前某个项目中,时间存储为VARCHAR类型,然后业务逻辑有要求查找出某个时间段范围内的数据。

  某同事的实现细节中用到了两个方法:DATA_FORMAT讲数据库中时间数据格式化,UNIX_TIMESTAMP拿到时间戳。这样子效率特别特别低。

  然后我给数据库表增加了一个BIGINT类型字段,UPDATE整张表,VARCHAR类型时间转换成了整形类型时间,去掉上述两个函数,效率提升了约33%,见另一篇关于数据库优化的博客记录。

  隔了段时间,上司要求继续优化。

2.实现:

  1.去掉增加的BIGINT类型时间字段,

  2.数据入库时候时间格式化,比如精度统一

  3.去掉函数

3.效果:

  时间筛选部分的时间消耗下降非常可观,有一倍以上。

4.姿势:

  1.不要在筛选列进行函数处理,以免全表扫描、索引等失效;

  2.如果要筛选时间,考虑入库前格式化、筛选时候直接比较,如"2016-01-02 11:12:13" > "2016-01-02 11:12:11"。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐