mysql 多表关联查询时的优化count

问题
多表关联优化ALL级别,如下,虽然device_id level_id 分别建立了索引,还是有ALL。

如下三张表联合查询时, 在where条件中同属一张表的字段,通过联合索引解决问题,如下
p.device_id p.level_id ,是同一张表,并在where 条件中,所以可以加联合索引,提升count查询效率:

SELECT
  COUNT( 1 )
FROM
  t_uweb_event_manage p
  LEFT JOIN t_uweb_device_manage d ON d.id = p.device_id
  LEFT JOIN t_uweb_event_level_manage t ON p.level_id = t.id
WHERE
  d.customer_code = '0000104285'

create index idx_device_id_level_id on `t_uweb_event_manage`(device_id, level_id);
为什么分别建立索引没达到效果,而联合索引达到了效果。 因为联合索引,减少了回表操作。

效果

 

 

————————————————
版权声明:本文为CSDN博主「千百元」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liuming690452074/article/details/125059938

posted @ 2022-09-28 17:23  笨笨韩  阅读(805)  评论(0)    收藏  举报