数据库中时间存储类型相关
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"。
之前某个项目中,时间存储为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"。
相关文章推荐
- Elasticsearch Date类型,时间存储相关说明
- 数据库时间戳用数据类型来存储
- Elasticsearch Date类型,时间存储相关说明
- 数据库时间(datetime类型)的存储和读取
- Elasticsearch Date类型,时间存储相关说明
- Elasticsearch Date类型,时间存储相关说明
- 数据库有一个CHAR类型的字段,是用来存储时间的,如:1:20(一个小时20分),怎么对它算平均值和总值?
- 时间戳在数据库存储的类型
- WF中的跟踪服务(1):Sql跟踪数据库表,视图,存储过程等相关说明
- 存储里比较2007(输入)和2007-2-26(数据库)这样的时间格式
- java 日期的格式化、解析、数据库相关操作、获取系统时间、String与Date的转换
- jdbc 日期时间相关的类型
- MS SQL Server 2000中用于日期时间存储数据类型说明
- Blob数据类型在数据库中的存储
- 三种数据库中的时间类型函数例子
- String类型存储到Clob类型的方法、java存储时间戳
- Qt QHash 和QMap 区别时间: 2010-11-17 / 浏览次数: 75 views / 1个评论 发表评论QMap提供了一个从类项为key的键到类项为T的直的映射,通常所存储的数据类型是一个键对应一个直,并且按照Key的次序存储数据,
- 如何将图片以Image类型存储到数据库 (asp.net) 如何从数据库中读取Image类型的字段(asp.net)
- VC数据库开发日记6: ACCESS中时间类型的查询和正确显示
- 如何将图片以Image类型存储到数据库 如何从数据库中读取Image类型的字段