MySQL基础架构

总体介绍

    MySQL基础的架构图如下图所示,主要分为Server和存储引擎两部分。其中Server部分负责大部分核心功能,实现跨存储引擎的存储过程等,此外,常见的内置函数也都在Server的部分负责实现。而存储引擎的部分负责数据存储与提取,是可插拔的,常见的存储引擎包括InnoDB(5.5版本及其之后作为默认引擎)、Memory,MyISAM等。在这里插入图片描述

模块介绍

连接器

    使用MySQL的第一步就是建立连接,常用的连接语句如下:

     mysql -h$ip -P$port -u$user -p

    输入该语句之后回车,然后输入密码即可连接数据库,注意在上述语句中,p之后也可以直接输入密码,但是这容易造成密码泄露(Linux中记录历史命令),不建议在连接语句中输入密码。
    客户端与连接器建立TCP连接之后,首先通过用户名和密码验证用户的访问权限,然后进行下面的操作,注意,在该连接失效前均以此时查询到的权限为准,也就是说,修改用户的访问权限并不影响已经建立的连接。可以通过show processlist来查看当前建立的连接情况,如果连接长时间未使用,则会自动断开,wait_timeout参数控制超时时间。
在这里插入图片描述
    由于建立连接的过程比较耗时且复杂,所以最好通过长连接的方式进行查询,但在连接数量过多时,可能会使得MySQL出现OOM重启的问题,解决办法:

  1. 定期断开占用内存过大的长连接
  2. MySQL 5.7或更新版本,可以在每次执行一个比较大的操作后,通过执行 mysql_reset_connection来重新初始化连接资源

查询缓存

    缓存将查询过得数据以Key-value的方式存储,由于任何对表中数据的更新都会使得缓存失效,所以缓存只适用于静态表的数据查询,可以修改默认不开启缓存,需要时再进行开启。

分析器

    分析器进行词法分析、语法分析(比如列名不存在,则会在此层判断)

优化

    对用户的执行代码or执行语句进行优化,包括表的连接顺序、选择索引等

执行器

    首先再次检查用户是否有访问数据的权限,然后调用存储引擎的接口(查询满足条件的第一行-》满足条件的下一行)的方式获取数据,然后将结果返回给用户。

参考文献

MySQL实战45讲

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值