如何在mysql中使用关联查询

  介绍

本篇文章为大家展示了如何在mysql中使用关联查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强> 1,确保使用字和句中的列上有索引。

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

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

<强> 3,实例

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

 outer_iterator =, SELECT  A.xx, A.c 得到A  WHERE  A.xx 拷贝(5、6);
  ,
  时间=outer_row  outer_iterator.next;
  ,
  而(outer_row), {
  ,
  ,,,inner_iterator =, SELECT  B.yy 得到B  WHERE  B.c =, outer_row.c;
  ,
  ,,,inner_row =, inner_iterator.next;
  ,
  ,,,,(inner_row), {
  ,
  ,,,,,,,输出[inner_row.yy outer_row.xx];
  ,
  ,,,,,,,inner_row =, inner_iterator.next;
  ,
  ,,,}
  ,
  ,,,outer_row =, outer_iterator.next;
  ,
  }可以看的到,最外层的查询是根据A.xx列来查询的,交流上如果有索引的话,整个关联查询也不会使用。再看内层的查询,很明显B。c上如果有索引的话,能够加速查询,因此只需要在关联顺序中的第二张表的相应列上创建索引即可。

上述内容就是如何在mysql中使用关联查询,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

如何在mysql中使用关联查询