有2个表 A,B
A:   username,title.....
B:   username,nickname.....A表和B表都很大。我想得到一个 title,nickname的记录集。A表的username和B表的username对应。我用的方法: select A.title,B.nickname from A,B where A.username=B.username.我发现2个表大的时候,效率非常慢。其实也不大,也就是其中一个表达到1万条记录而已不知道大家有什么方法解决。left join, right join怎么用?是不是效率高?

解决方案 »

  1.   

    看手册可以知道,这种情况MySQL会开辟专门的线程进行处理.效率当然是比单表查询低了!
      

  2.   

    对两个表的username建立索引,会使查询效率得到很大的提高。
      

  3.   

    建议将两表间的关联字段由username改为int型userID,并分别建立唯一索引,这样可以加快速度
      

  4.   

    我个人建议: 
    1\可以设关键为:INDEX. 
    2\或用左右连接,试一下.我本人没有弄过....但你可以试一下!!
      

  5.   


    SELECT A.title,B.nickname
      FROM A
      LEFT JOIN B ON A.username=B.username
      WHERE ...必要的索引与结果集的限止是必要的
      

  6.   

    合理做索引效率会提升很大,详细的就看手册吧,看这段 http://yangxingjun.myrice.com/chinesehow/mysql/manual_Reference.html#EXPLAIN