MySQL高级(一)(逻辑架构,SQL执行顺序,常见的JOIN查询)

1、MySQL逻辑架构介绍

MySQL的逻辑架构分为四层

(1)连接层

主要完成一些类似连接处理,授权认证及相关的安全方案,在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。

(2)服务层

这是MySQL的核心部分,通常叫做SQL Layer,在MySQL数据库系统处理底层各种数据之前的所有工作都是在这一层完成的,包括权限判断,SQL接口,SQL解析,SQL分析优化等,缓存查询的处理以及部分内置函数执行(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等。

(3)引擎层
  • 引擎层是底层数据存取操作实现的部分,由多种存储引擎共同组成,真正负责MySQL中数据的存储和提取。就像Linux众多的文件系统一样。每个存储引擎都有自己的优点和缺陷。服务器是通过存储引擎API来与他们交互的。这个接口隐藏了各个存储引擎不同的地方。对于查询层尽可能的透明。这个API包含了很多底层的操作。如开始一个事物,或者取出有特定主键的行。存储引擎不能解析SQL,互相之间也不能通信。仅仅是简单的响应服务器 的请求。
  • 存储引擎接口模块可以说是 MySQL 数据库中最有特色的一点了。目前各种数据库产品中,基本上只有 MySQL 可以实现其底层数据存储引擎的插件式管理。这个模块实际上只是 一个抽象类,但正是因为它成功地将各种数据处理高度抽象化,才成就了今天 MySQL 可插拔存储引擎的特色。
    在MySQL中主要使用的是MyISAM引擎和InnDB引擎:
对比MyISAMInnoDB
主外键不支持支持
事务不支持支持
行表锁表锁行锁
缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据
表空间
关注点性能事务
(4)存储层

主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。

mysql逻辑架构图:
在这里插入图片描述

2、SQL的执行顺序

手写顺序:
在这里插入图片描述
真正执行顺序:

  • 随着 Mysql 版本的更新换代,其优化器也在不断的升级,优化器会分析不同执行顺序产生的性能消耗不同而动 态调整执行顺序。下面是经常出现的查询顺序:
    在这里插入图片描述

3、常见JOIN查询

在这里插入图片描述

1.select <select_list> from tableA a inner join tableA b on a.key=b.key;

在这里插入图片描述

2.select <select_list> from tableA a left join tableB b on a.key=b.key;

在这里插入图片描述

3.select <select_list> from tableA a right join tableB b on a.key=b.key;

在这里插入图片描述

4.select <select_list> from tableA a left join tableB b on a.key=b.key where b.key is null;

在这里插入图片描述

5.select <select_list> from tableA a right join tableB b on a.key=b.key where a.key is null;

在这里插入图片描述

6.select <select_list> from tableA a left join tableB b on a.key=b.key 
union  #将两个查询结果合并会删除重复的数据
select <select_list> from tableA a right join tableB b on a.key=b.key;

在这里插入图片描述

7.select <select_list> from tableA a left join tableB b on a.key=b.key where b.key is null
union
select <select_list> from tableA a right join tableB b on a.key=b.key where a.key is null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值