mysql架构详解
一、mysql组件 1.mysql对外提供的交互接口(connectors): 编程语言通过connectors组件,比如php,pymysql,JDBC来操作sql 2.管理服务和工具组件(Management Service & Utilities): 提供对mysql的集成管理,比如备份,恢复,等 3.连接池组件(Connection Pool): 负责监听客户端向server的各种请求,每个成功连接的客户端都会分配一个线程负责与server通信 4.sql接口组件(SQL Interface): 接收客户端sql命令,并将结果返回给客户端 5.查询分析器(Parser): 解析sql语法是否正确,不合理则报错 6.优化器组件(Optimizer): 对sql语句按照标准优化分析 7.缓存组件(Caches & Buffers): 缓存缓冲数据 8.插件式存储引擎(Pluggable Storage Engines): mysql是关系型数据库,数据是以表的形式存储的,对于表的创建,数据的存储,更新都是由存储引擎完成的 9.物理文件系统: 真实存储数据表,数据,日志的地方 二、查询流程 1.客户端服务端通信协议: 在任一时刻,要么是服务器向客户端发送数据,要么是客户端向服务器发送数据,这两个动作不能同时发生。一旦一端开始发送消息,另一端要接收完整个消息才能响应它