1.从图中看到mysql是客户服务器模式。
2.我们如何操纵数据库?
a.直接sql,各种编程语言,
3.客户端和服务器如何通信呢?
凡是c/s模式的都会自己的协议,但是都是基于TCP/IP协议,在linux下还有socekt通信,端口号为3306
4.一条sql的简单流程如下;
1用户使用mysql -u -root 登录
2.服务器收到请求,连接管理模块(管理大量线程),给用户分配一个线程,
3.线程调用用户管理模块验证用户的账号密码对不,然后放行,
4.用户开始输入 sleletc(查询) update delete(数据操纵语言) ,show status(数据库的状态) create table(数据定义语言)等sql命令。
5.命令分发器将上面的输入sql按照类型分给各个模块处理,期中seletc最复杂,对应的是查询优化器。同时查询过程中如果在查询缓存中存在的化,就不用访问数据库了,直接从缓存中找,在这个过程中还会有日志的记录,有哪些日志呢
6.要想访问文件中具体内容,还得有权限,每个用户都是有自己的权限的,所以有权限检查模块,然后通过存储引擎进行处理。
ref: