重新理清主表与附表的关系。大数据量的表(相对你的数据库),建议少用Left join减少限制地去关联,效率会降低很多(当你的附表数据量也慢慢变大后)。

解决方案 »

  1.   

    那应该用什么去关联比较好呢

    你关联两个表的字段是对的,但是我觉得你的外键值`hp_id`在关联表时是必要的,所以你可以不用left join的形式去关联表,你尝试用join直接关联,速度应该会提升不少,而且也符合逻辑。试试看吧。
      

  2.   

    那应该用什么去关联比较好呢

    你关联两个表的字段是对的,但是我觉得你的外键值`hp_id`在关联表时是必要的,所以你可以不用left join的形式去关联表,你尝试用join直接关联,速度应该会提升不少,而且也符合逻辑。试试看吧。
    不用的话 更慢了
      

  3.   

    那应该用什么去关联比较好呢

    你关联两个表的字段是对的,但是我觉得你的外键值`hp_id`在关联表时是必要的,所以你可以不用left join的形式去关联表,你尝试用join直接关联,速度应该会提升不少,而且也符合逻辑。试试看吧。
    不用的话 更慢了
    http://www.cnblogs.com/zping/archive/2008/08/05/1260989.html 可以看看这个文章。当然你的语句执行效率慢或许不是因为left join。但是在连接两个表的思路上,我看了你表设计的关系,认为没必要使用left join,因为你的not null,group by都表示你这个外键值的不可或缺。我们平时写SQL也是尽量避免使用不加限制(或只加一半限制)的连接!
      

  4.   

    这个SQL确实很慢,如果需要彻底解决这个问题,可以 以牺牲空间来换取时间。
    多建一张统计表