A表和B表做关联查询!1.
SELECT A.ID FROM A LEFT JOIN B ON A.c = B.c AND A.a = B.a AND A.b=B.b WHERE A.a = '11' AND A.b='22' AND A.e = '33' AND B.f = '44'2.
SELECT A.ID FROM A LEFT JOIN B ON A.c = B.c AND B.a = '11' AND B.b='22' WHERE A.a = '11' AND A.b='22' 
AND A.e = '33' AND B.f = '44'其中A.a A.b 是A表的Index , B.a B.b 是B表的Index ;请问这两个查询的效率是否有差别,如果有差别,哪个效率更高一些,为什么更高一些?其实这个查询语句是用在子查询的 IN 里面的 如果有更好的方法来优化这个查询 , 请不吝赐教 !

解决方案 »

  1.   

    问题补充 :A表的数据量在700W左右 , B表在300W左右 ;加上 INDEX  的过滤条件 A.a = '11' AND A.b='22'  A表数据在10000左右 。B.a = '11' AND B.b='22'  B表数据在5000左右 。
      

  2.   

    我知道在对表进行查询的时候,from后面表的顺序是按照记录数从大到小进行排列,而where后面的条件是按照从前面省略掉记录数由多到少的顺序进行排列,并且在where后面等号左侧对字段尽量不要使用函数