mysqld 的程序结构

 

1.连接层
1)检验用户的合法性
2)提供两种连接方式
a)TCP/IP
[root@db02 ~]# mysql -uroot -p123 -h10.0.0.51
[root@db01 ~]# mysql -uroot -p123 -h127.0.0.1

b)socket
[root@db01 ~]# mysql -uroot -p123 -S /usr/local/mysql/tmp/mysql.sock
[root@db01 ~]# mysql -uroot -p123 -hlocalhost
[root@db01 ~]# mysql -uroot -p123
3)建立一个与SQL层交互的线程

2.SQL层
1)接收连接层传来的SQL语句
2)检查语法
3)检查语义(检查它属于哪种SQL语句:DDL,DML,DCL,DQL)
4)解析器:解析SQL语句,生成多种执行计划
5)优化器:接收解析器传来的多种执行计划,选择最优化的一条方式去执行
6)执行器:执行优化器传来的最优方式的SQL语句
a)建立一个与存储引擎层交互的线程
b)接收存储引擎层,返回的结构化成表的数据
7)写缓存
8)记录日志


3.存储引擎层
1)接收SQL层传来的SQL语句
2)与磁盘交互,找到数据并结构化成表的形式,返回给SQL层
3)建立一个与SQL层交互的线程


三.什么是实例?

1.MySQL的后台进程+线程+预分配的内存结构。
2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用。

posted on 2019-05-09 17:26  kaikai2xiaoqi  阅读(256)  评论(0编辑  收藏  举报