EXPLAIN 你的sql语句,看看用到了哪些索引,在没有用到索引的字段上添加索引

解决方案 »

  1.   

    explain查询语句 贴出执行计划
      

  2.   

    估计是因为group by 用了函数导致索引不起作用了。
      

  3.   

    select count(1),DATE_FORMAT(d.create_time,'%Y-%m-%d') from t_hsj_driver d
    left join t_hsj_user u on d.driver_mobile = u.account
    where d.effective = 1
    GROUP BY DATE_FORMAT(d.create_time,'%Y-%m-%d') descselect * from (select count(1),DATE_FORMAT(d.create_time,'%Y-%m-%d') from t_hsj_driver where effective=1) a left join t_hsj_user  u on d.driver_mobile = u.account GROUP BY DATE_FORMAT(d.create_time,'%Y-%m-%d') desc
      

  4.   

    贴出 explain select ...
      

  5.   

    SQL优化,不仅仅只是语句的问题,索引与表的设计、数据量、数据库的配置等很多因素都有影响,这这句语句是看不出什么问题的SELECT Count(1),
           Date_format(d.create_time, '%Y-%m-%d')
    FROM   t_hsj_driver d
           LEFT JOIN t_hsj_user u
             ON d.driver_mobile = u.account
    WHERE  d.effective = 1
    GROUP  BY Date_format(d.create_time, '%Y-%m-%d') DESC 
      

  6.   

    表的字段未用到索引才这么慢,合理使用索引才行,你可以desc sql,查看哪些地方需要加索引。
      

  7.   

     第一张是explain select 图第二张是 d表索引  第三张是u表索引