用user id做连接比用username好 

解决方案 »

  1.   

    试试!SELECT b.*, a.* FROM list b LEFTJOIN user a ON b.username=a.username WHERE b.show = 1 and b.classa = 1 and b.classb = 10 and INSTR(b.title, 'ss') and b.city = 12 order by b.time desc limit 0,20
      

  2.   

    谢谢!to:helloyou0(你好!) 这个数据库是原来人家设计好的,现在有几十万数据了,所以没法改...
      

  3.   

    like的问题,导致效率下降
    另外,请写出你现在的索引字段
      

  4.   

    %xx%形式的like语句,在该字段建的索引是不起作用的,
    这个查询主要是慢在这里,其它的username,classa,classb的索引你应该已经建了。
    旧索引重建一下也会有作用,不过都是作用在使用索引的部分,不会有大的改变。如果几百万数据,like查询3到5秒应该也不算太过分不如看看是否可能分表,如果业务上可能的话,比如查询虽然频繁,但是集中在比较
    近期的数据,那么可以分为当前数据表和历史数据表
    当然这样需要改动比较大,看值不值,和头头是否支持决定。