mysql数据库根据时间查询的优化

本文介绍了解决数据库查询速度慢的问题,提供了三种有效的方法:避免使用特定的时间段查询语句、为查询时间列创建索引以及使用BETWEEN AND代替传统的AND操作符。此外,还提供了一个具体的MySQL查询示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天 数据库单表查询,根据时间段进行查询,百万级数据量查询速度很慢,所以记录一下解决方法。

1、尽量避免thisTime > startTime and thisTime < endTime这样的语句,反正我自己使用这样的语句查询太慢。

2、使用索引,以查询时间的列建立索引。

3、使用BETWEEN  AND可能效果更好。

例:

SET @yt_bt=DATE_FORMAT(DATE_ADD(now(),INTERVAL -1 day),'%Y-%m-%d 00:00:00');

SET @yt_et=DATE_FORMAT(DATE_ADD(now(),INTERVAL -1 day),'%Y-%m-%d 23:59:59');

select * from test force index(createTime) where 1=1 and  createTime BETWEEN @yt_bt AND @yt_et;

我这里使用了强制索引,因为我测试的时候发现,如果查询时间区间超过20天,mysql默认不使用索引,而进行全局搜索。

记录一下,以免遗忘。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值