MYSQL的体系结构
Client端
MySQL内置客户端: mysql,mysqldump… .
第三方: sqlyog ,navicat,workbench…
应用APl:C java ,python ,php
|
|到server端的连接层
|
连接层:
1 连接协议:socket,TCPIP
2 进行连接验证:user,password合法性
3 连接资源的管理 max_connetions=1500
4 启动连接线程 conector Thread 接受SQL语句并返回执行结果
mysql> show full processlist
|
|到SQL层 thread
|
SQL层
语法检测
语义,权限 DDL(数据定义语言) DML(数据操作语言) DCL(数据查询语言) …
解析(生成解析树) 全表(执行计划)和索引(执行计划)
预处理,估计一下多种方案的消耗
选择执行计划,选择代价较低的
按照执行计划,继续执行SQL语句
你要的数据在磁盘的xxx位置,在哪个段哪个区哪个页上
|
|到存储引擎层
|
和磁盘交互的层次。相当于MySQL内置的文件系统。负责数据的存取。
如查询一个oldboy的ibd文件
端:segment非分区表表就是一个段。 一个或多个extents组成
区:extent 连续的64个页
页:page 默认是1M
到一个块上: block 默认大小是16KB,连续4个OS block
|
|
|
再到FS下的OS/dev/sdb