mysql使用关联查询的注意点

美女程序员鼓励师

1、确保ON和USING字句中的列上有索引。

在创建索引的时候就要考虑到关联的顺序。当表A和表B用列c关联的时候,如果优化器关联的顺序是A、B,那么就不需要在A表的对应列上创建索引。没有用到的索引会带来额外的负担,一般来说,除非有其他理由,只需要在关联顺序中的第二张表的相应列上创建索引。

2、确保任何的GROUP BY和ORDER BY中的表达式只涉及到一个表中的列,这样MySQL才有可能使用索引来优化。

实例

假设MySQL按照查询中的关联顺序A、B来进行关联操作,那么可以用下面的伪代码表示MySQL如何完成这个查询:

outer_iterator = SELECT A.xx,A.c FROM A WHERE A.xx IN (5,6);

 

outer_row = outer_iterator.next;

 

while(outer_row) {

 

    inner_iterator = SELECT B.yy FROM B WHERE B.c = outer_row.c;

 

    inner_row = inner_iterator.next;

 

    while(inner_row) {

 

        output[inner_row.yy,outer_row.xx];

 

        inner_row = inner_iterator.next;

 

    }

 

    outer_row = outer_iterator.next;

 

}  可以看到,最外层的查询是根据A.xx列来查询的,A.c上如果有索引的话,整个关联查询也不会使用。再看内层的查询,很明显B.c上如果有索引的话,能够加速查询,因此只需要在关联顺序中的第二张表的相应列上创建索引即可。

以上就是mysql使用关联查询的注意点,算是对关联查询的优化,大家学会后也赶快试试吧。更多mysql学习指路:MySQL

推荐操作系统:windows7系统、mysql5.8、DELL G3电脑

以上是 mysql使用关联查询的注意点 的全部内容, 来源链接: utcz.com/z/544871.html

回到顶部