数据库版本:5.7
数据一共:
2247005条
sql语句:
FROM
xxxx_price_info t
WHERE
t.tenant_id = 800069
AND t.xxxx_price_state in (0, 1, 2)
AND t.xxxx_price_type in (1, 5)
AND t.xxxx_price_apply_time >= '2023-10-25 00:00:00'
AND '2023-11-23 23:59:59.999' >= t.xxxx_price_apply_time
AND (
CONCAT(SUBSTR(t.adcode, 1, 4), '00') in ('650400', '361100', '330600', '420600', '420200')
or t.adcode in ('650400', '361100', '330600', '420600', '420200')
)
ORDER BY
t.id DESC
limit
0, 10
添加这个索引:
(`tenant_id`, `xxxx_price_type`, `xxxx_price_state`, `xxxx_price_apply_time`, `adcode`);
优化起没选择这个索引,走了主键查询,用时14秒,虽然强制使用索引,也可以使用这个索引, 但是需要修改索引。 优化器没选择这个索引,
是任务走主键可以减少排序,并且只limit 10行数据。 添加下一个索引, 加上id。让索引有排序字段。
添加这个索引:
(`tenant_id` ,id,`xxxx_price_type`, `xxxx_price_state`, `xxxx_price_apply_time`, `adcode`);
优化器选择了 添加的索引,没走主键查询。用时 200毫秒