持续休息中,今天也分分享一个小小的案例
SELECT
lot_details_id,
lot_id,
shop_id,
md_code,
product_bn,
commission_rate,
activity_commission_rate,
compensation_method,
supplier_commitment_rate,
product_name,
business_type_code,
out_first_cate_id,
out_first_cate_name,
out_second_cate_id,
out_second_cate_name,
out_third_cate_id,
out_third_cate_name,
serial_no,
disabled,
create_time,
update_time
FROM
gc_share_earn_lot_details
WHERE
(
serial_no > 6076769
AND lot_id = 21
AND disabled = 0
)
ORDER BY
serial_no ASC
LIMIT 0,
500
执行计划如下
走的是serial_no 的单个字段的索引,接下来我建立一个lot_id,serial_no 的复合索引,查看计划后,果然是走的复合索引,但是奇怪的是执行时间变慢了,这又是为什么呢,其实仔细观察会发现这个key_len还是8,其实我猜想应该只走了lot_id、serial_no 复合索引的前半部分,lot_id是bigint型,刚好是8个字节,你怎么看呢
一起探讨,一起进步,欢迎留言
文章转载自MySql星探,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。