mysql工作流程
1.connector sql交互语言,php,java等
2.系统管理和控制工具
3.连接池 管理缓冲用户连接,线程处理等需要缓存的需求
4.Sql接口接受sql命令,返回查询结果
5.解释器 sql命令传递到解析器进行解析和验证
分解sql语句成数据结构后边语句的传递都基于这个结构
解析过程中验证sql的合法性,解析出错不继续解析
6.查询优化器
Sql语句解析后进行查询之前会进行查询优化,(产生多种执行计划,选择最优)
7.cache和buffer 查询缓存 查询缓存有命中的查询结果就直接去缓存中取数据
这种缓存机制由一系列小缓存组成 比如表缓存 key缓存 权限缓存
8.engine存储引擎
和文件打交道的子系统,也是具体进行数据存储和取出数据的地方 插件式
的文件访问机制
9.数据库一般是由其他编程语言通过sql调用,mysql处理并返回结果
首先通过connector进行交互,请求会暂存connection pool由管理器管理
请求从等待队列进入处理队列后,管理器会把请求丢给sql接口
Sql接口收到请求后,进行hash处理并和缓存结果进程对比,通过匹配就返回结果
否则丢给解释器-》解析成数据结构验证sql合法-》优化器优化查询计划-》交给存储引擎到磁盘获取数据,返回给程序
10.缓存查询数据
存储引擎处理完数据返回给程序时还会保留一份数据到缓存中以便处理下次相同的请求
执行语句+执行结果-》hash 保存到cache
11.cache和buffer区别
Buffer是写缓存 cache是读缓存