首页 > 代码库 > mysql 学习(1)

mysql 学习(1)

20130611080522375.jpeg

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:

http://blog.csdn.net/hguisu/article/details/7106342