mysql体系结构
MySQL体系结构
1.客户端程序连接MySQL的两种方法
- 通过网络连接
mysql -u roo -poldboy123 -h 10.0.0.52 - 通过套接字件文
mysql -u root -poldboy -S /tmp/mysql.sock
2.MySQL实例概念
mysql实例:MySQL的后台进程+线程+预分配的内存结构
3.MySQLD服务程序构成
3.1 连接层
连接层主要用来处理与客户端的连接与验证,如TCP/IP连接,sock的连接,然后再进行身份验证,验证成功之后会开启一个线程
3.2 SQL层的处理流程
1、接收到连接层送过过来的“SQL”
2、由专门的模块,会判断SQL语法、语义(SQL语句的类型:DDL、DCL、DML)
3、将不同类型的语句,送到专门的处理接口(解析器)
4、解析器,将SQL解析成执行计划
5、优化器,会选择“它”最优的执行计划交给执行器
6、执行器,执行 执行计划,得出如何去“磁盘”获取数据的方法
7、专门线程将获取数据的方法,送给下层(存储引擎层)继续处理。
8、验证授权,当前用户对 库或表对象有没有操作的权限。
9、查询高速缓存query_cache。
10、记录修改操作日志binlog。
3.3 存储引擎层
存储引擎是充当不同表类型的处理程序的服务器组件
- 存储引擎用于:
存储数据
检索数据
通过索引查找数据 - 双层处理
上层包括SQL解析器和优化器
下层包含一组存储引擎 - SQL层不依赖于存储引擎:
引擎不影响SQL处理
有一些例外
3.3.1 依赖于存储引擎的功能
- 存储介质
- 事务功能
- 锁定
- 备份和恢复
- 优化
- 特殊功能:
全文搜索
引用完整性
空间数据处理
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">