Study-Hard-数据库连接及实现内部原理(上)

本文探讨了数据库联合查询的优化,包括数据源、各种类型的关联操作如left join、right join、full join、自连接和交叉连接。进一步,文章详细阐述了数据库在处理关联时的三种主要方式:NestedLoop嵌套循环、Hash散列关联和Merge归并关联,强调了理解这些原理对编写高效SQL的重要性。
摘要由CSDN通过智能技术生成

        在操作数据库的时候时常会进行多表的关联,也就是常说的联合查询。联合查询的sql是需要一定优化的,这个过程数据库的查询解析器会帮我们完成一部分,这并不意味着,我们可以书写低质量的sql。在联合查询的时候,涉及到多表的笛卡尔积等概念,而这些sql操作无不是对数据进行筛选、排序等操作,最常见的三种方式分别为:

  • NestedLoop,嵌套循环
  • MergeSort,归并排序(这里的归并,不单纯是对一组数据进行归并,进行的是关联归并)
  • Hash,哈希散列
        而我们再做关联操作、分组操作、去重操作时,都是会设计到排序的,我会再下篇中简介常见操作的实现原理,本篇中,主要介绍下,left join、right join、full join以及自连接等操作。

一、一些简单的关联操作 

1.1 数据源

        准备了两张表,一张为Message表,表中的字段分别代表:  
                            _messageId:Message表的PK                                                                                                                                                      _id:User的Id字段
                              _message:消息实体
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值