码迷,mamicode.com
首页 > 数据库 > 详细

MySQL如何执行关联查询

时间:2015-12-08 00:37:47      阅读:359      评论:0      收藏:0      [点我收藏+]

标签:

  MySQL中‘关联(join)’ 一词包含的意义比一般意义上理解的要更广泛。总的来说,MySQL认为任何一个查询都是一次‘关联’ --并不仅仅是一个查询需要到两个表的匹配才叫关联,索引在MySQL中,每一个查询,每一个片段(包括子查询,设置基于表单的select)都可能是关联。

  所以,理解MySQL如何执行关联查询至关重要。我们先来看一个union 查询的例子。对于union查询,MySQL先将一系列的单个查询结果放到一个临时表中,然后再重新读出临时表数据来完成union查询。在MySQL的概念中,每个查询都是一次关联,所以读取结果的临时表也是一次关联。

  当前MySQL关联执行的策略很简单:MySQL对任何关联都执行嵌套关联的操作,即MySQL在一个表中循环读出单条数据,然后在嵌套循环到下一个表中寻找匹配的行,依次下去,直到找到所有表中匹配的结果未知。然后根据各个表匹配的行,返回查询中需要的各个列。MySQL会尝试在最后一个关联表中找到所有匹配的行,如果最后一个关联表无法找到更多的行以后,MySQL会返回到上一层关联表,看是否能够找到更多的匹配记录,以此类推迭代执行。

 

MySQL如何执行关联查询

标签:

原文地址:http://www.cnblogs.com/zhengyanqiu/p/5027833.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!