mysql sending data 数据量大之后查询缓慢

以下这个sql在测试环境数据量小,10几毫秒ms就出数据了,正式环境出现问题

SELECT 
  od.shb_goods_id,
  od.shb_order_id,
  od.shb_activity_id,
  sac.shb_acttype_id,
  od.goods_name,
  od.count,
  o.discount,
  o.shb_user_id,
  o.get_money,
  od.goods_price,
  od.favo_price,
  od.market_price,
  od.count AS Maxcount,
  od.price_unit,
  od.spec,
  od.now_price,
  od.discount AS discount_d,
  od.atype,
  od.rebate,
  fm.third_type,
  sg.goods_barcode 
FROM
  shb_shop_order_cdetail od 
  LEFT JOIN shb_shop_corder o 
    ON o.shb_order_id = od.shb_order_id 
  LEFT JOIN shb_shop_goods sg 
    ON sg.shb_goods_id = od.shb_goods_id 
  LEFT JOIN shb_flow_money fm 
    ON fm.shb_order_id = o.shb_order_id 
  LEFT JOIN shb_saler_activity sac 
    ON sac.shb_activity_id = od.shb_activity_id 
WHERE o.shb_order_xid = '079119111416470490' 
  AND o.shb_shop_id = '100343' 

对sql进行分析

EXPLAIN SELECT 
  od.shb_goods_id,
  od.shb_order_id,
.....
FROM
  shb_shop_order_cdetail od 
  LEFT JOIN shb_shop_corder o 
    ON o.shb_order_id = od.shb_order_id 
  LEFT JOIN shb_shop_goods sg 
    ON sg.shb_goods_id = od.shb_goods_id 
  LEFT JOIN shb_flow_money fm 
    ON fm.shb_order_id = o.shb_order_id 
  LEFT JOIN shb_saler_activity sac 
    ON sac.shb_activity_id = od.shb_activity_id 
WHERE o.shb_order_xid = '079119111416470490' 
  AND o.shb_shop_id = '100343' 

会发现


image.png

在出现null加上索引,速度会变快很多

推荐阅读更多精彩内容

  • 特别说明: 1、本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的常识...
    安易学车阅读 1,199评论 0赞 40
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升大家S...
    宠辱不惊丶岁月静好阅读 1,149评论 0赞 7
  • 索引 数据库中的查询操作非常普遍,索引就是提升查找速度的一种手段 索引的类型 从数据结构角度分 1.B+索引:传统...
    一凡呀阅读 1,113评论 0赞 6
  • MySQL技术内幕:SQL编程 姜承尧 第1章 SQL编程 >> B是由MySQL创始人之一Monty分支的一个版...
    沉默剑士阅读 1,384评论 0赞 3
  • 一. Java基础部分.................................................
    wy_sure阅读 2,347评论 0赞 11