暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL 执行思考

MySql星探 2021-04-07
326

持续休息中,今天也分分享一个小小的案例

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论