mysql关联查询原理
来源:互联网 发布:vb.net 拷贝文件夹 编辑:程序博客网 时间:2024/05/21 06:49
当前mysql执行执行的策略很简单:mysql对任何关联都执行嵌套循环操作,即mysql先在一个表中循环取出单条数据,然后再嵌套循环
到下一个表中寻打匹配的行,依次下去,直到描述到所表表中匹配的行为止。然后根据各个表匹配的行,返回查询中需要的各个列。mysql会尝试在最后一个关联表中打到所有匹配的行,如果最后一个关联表无法找到更多的行以后,mysql返回到上一层次关联表,看是否能够找到更多的匹配记录,依此类推迭代执行。
按照这样的方式查找第一条表记录,再嵌套查询下一个关联表,然后回溯到上一个表,在mysql中是通过嵌套循环的方式来实现的--正如其名‘嵌套循环关联’。请看下面的例子中的简单查询:
select tbl1.col1,tbl2.col2 from tbl1 inner join tbl2 using(col3) where tbl1.col1 in(5,6);
假设mysql按照查询中的表顺序进行关联操作,我们则可以用下面的伪代码表示mysql将如何完成这个查询:
outer_iter=iterator over tbl1 where col1 in(5,6)
outer_row =outer_iter.next
while outer_row
inner_iter =iterator over tbl2 where col3=outer_row.col3
inner_row =inner_iter.next
while inner_row
output[outer_row.col1,inner_row.col2]
inner_row=inner_iter.next
end
- mysql关联查询原理
- Mysql关联查询
- mysql关联查询
- mysql嵌套关联查询
- 谈关联查询-mysql
- MYSQL数据库关联查询
- mysql关联查询
- MySQL关联查询
- mysql中多表不关联查询
- MySQL关联查询
- mysql-(四)-关联查询
- mysql关联查询
- Mysql关联查询
- MySQL多张表关联查询
- mysql数据库关联查询
- MySQL之关联查询
- MySQL关联查询优化实例
- 两个MYSQL表关联查询
- 软件系统的标准化和产品化
- 深度学习 第四讲
- 关于.a和.framework的制作
- 如何使用KeyChain保存和获取UDID
- JS-easyui 扩展easyui.datagrid,添加数据loading遮罩效果代码
- mysql关联查询原理
- Spring初学三(对spring作为容器的理解)
- 打开系统设置
- Android 滑动效果基础篇(四)—— Gallery + GridView
- JFinal系统架构整理
- 第03讲-测试驱动风格_设计程序
- Frame.pack()与frame.validate()步骤的区别
- 工厂方法模式--lua实现
- C# Text输入检测是否为数字