mysql的基本框架

1. 服务层

就是MySQL数据库提供的一些功能。

1.1. 连接层

负责管理我们的连接池以及连接相关的配置。

主要负责连接客户端,所以会有很多关于客户端的相关变量以及配置

变量:
当前线程的一些状态,

show status like "Threads%"
show FULL PROCESSLIST

字段

含义

user

代表我连接到我的服务的用户信息

Host

代表是从哪一个ip连接过来的

db

连接的是哪个db

command

我去执行的一些命令,比如说我是做BinLog的同步,比如我是睡眠状态、还是查询状态

time

执行指令维持的时间

state

状态

max_connections 代表的是最大连接数,默认是151,超过这个连接数就不能连接了

1.2. 解析器

解析我们的sql语句,判断语句是否符合我们sql的语法以及后续的权限检测。主要保证拿到的sql语句是能在服务端执行的

词法解析:

我们的sql是一个一个简单的语句,我要知道这个语句是否正确,我需要一个一个的单纯去检查

语法解析:

就是解析语法树,看是不是符合语法树的结构,去校验这个表、表字段是否存在,以及接下来执行是否有相关权限。

1.3. 预处理

可以使用预处理来解决sql注入以及通过减少解析次数来提升性能。

适合的场景:

sql语句不变,但是我们的条件会随着用户的需要而变化

1.4. 优化器

觉得我的sql语句应该怎么样执行。

根据你电脑的cpu来决定你怎么优化,优化的方式有很多,可以自己去设置,像一些索引下推、子查询、链接管理

SELECT @@GLOBAL.optimizer_switch

1.5. 执行器

跟我们存储引擎交互,调用存储引擎的API得到用户想要的结果

2. 存储引擎层

存储引擎层属于mysql的一个插件,负责mysql是怎么存储和查询的。

InnoDB

Myisam ,更多的是只读的场景,或者读多的场景

memorv,我所有的数据保存在内存里,操作非常快,但是没法保证我数据的一个持久性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值