MySQL概览

​MySQL学习总结系列

1.MySQL概览

2.MySQL索引

3.MySQL锁

4.MySQL事务

mysql是瑞典的mysqlAB公司开发的关系型数据库管理系统,它比较适合OLTP的应用场景,支持innodb、mylsam、mermory、archive等多种存储引擎,在各个行业有着广泛的应用。
在这里插入图片描述
根据上图的可以看到mysql的结构全貌,从上到下各个模块以及对应的作用如下:
Connectors:数据库连接驱动,向外部提供数据库操作入口;支持多种驱动方式和多语言支持(对外门户)。
Connection Pool:mysql的连接管理采用的是线程模型(postgresql采用的是进程模型),当有一个新的客户端请求连接时,服务端会申请一个线程负责与客户端进行通信。连接线程池负责统一协调管理外部连接;进行用户权鉴、连接线程管理、连接数控制等。
SQL Interface:执行sql语句的标准接口定义,数据库范式对外的程序映射?
Parser:语法解析器,负责sql语句的解析。
Optimizer:sql优化器,执行的sql语句通过解析后会进行sql优化,根据sql语义选择性能最好的执行方式对已有语句进行翻译,保障执行sql的最优性能。
caches&buffer:mysql的全局缓存,存储近期访问数据的索引以及数据。
Pluggable storage engines:存储层插件集合,存储引擎层是以插件的方式进行管理的,不同的存储引擎可以进行切换,常用的存储引擎有mylsam和innodb。

有了上述大致结构的铺垫,我们先直观看一下一个sql从客户端发送请求到数据库接受响应都经历了什么,以及在上述结构中各个模块都做了哪些事情。

1.客户端通过Connectors驱动程序发送sql请求,并由ConnectPool最先接收。ConnectPool接收后会进行一系列的连接验证,包含是否有可用的连接资源、当前用户密码是否正确,是否具备访问数据库的权限。

2.(早起版本中默认开启数据缓存功能,以sql语句为key,先通过Cache取数据,如果命中则直接返回。由于命中率比较低,后续版本中默认关闭该功能)

3.通过1中的连接验证后,sql语句进一步来到了Parser这里进行语法解析,构造对应的语法树,这里的语法树可以理解为将sql这种字符串形式转换为程序可识别的命令,日常工作中如果我们写错了sql会有对应的错误提示,就是通过这里解析识别出来的。

4.查询优化器会根据sql要做的事情进行优化,选择性能较好的方式进行执行。比如调整join语句中表的连接顺序、去除无效的条件、当表中有多个索引时决定选择哪一个等等。一般数据库的优化器包括基于成本的优化和基于规则优化,mysql采用的是基于成本低优化模式,即将每个查询的执行动作都赋予一定的权重,根据评估查询过程中各个环节所耗费的加权总和来评估性能,选择最优的方式。

5.sql语句作为查询命令通过API查询接口执行引擎读取数据。

6.最后由存储引擎负责提供数据。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值