关于使用BETWEEN AND 使索引失效的解决方法

由于业务需要,需要使用between and 查询数据,
在查询数据条数约占总条数五分之一以下时能够使用到索引,但超过五分之一时,则使用全表扫描了。速度极慢。
在这里插入图片描述

解决办法(联合索引+强制使用索引)

在这里插入图片描述

在这里插入图片描述

EXPLAIN
		SELECT DISTINCT
			vrd.vehicle_id,
			DATE_FORMAT( vrd.start_time, '%Y-%m-%d' ),
			bv.license_plate_number 
		FROM
			vehicle_runing_duration vrd
			FORCE INDEX ( index_time_id ) #强制使用索引
			LEFT JOIN basic_vehicle bv ON vrd.vehicle_id = bv.id 
		WHERE
			vrd.start_time BETWEEN "2022-08-01 00:00:00" 
			AND "2022-09-03 00:00:00" 
		ORDER BY
			bv.license_plate_number 

猜你喜欢

转载自blog.csdn.net/weixin_42436236/article/details/128465866
今日推荐