MySQL详解
MySQL内部执行过程
MySQL中从基本架构示意图可以看出,分为两层,分别是Server层和存储引擎层。
Server层:
名词 | 解释 |
---|---|
1.连接器 | 管理连接,权限验证 |
2.分析器 | 词法分析,语法分析 |
3.查询缓存 | 命中缓存直接返回结果(大并发或大量更改不适用,更改会清空缓存,不建议使用) |
4.优化器 | 执行计划生成,索引选择 |
5.执行器 | 操作引擎,返回结果 |
存储引擎层:
名词 | 解释 |
---|---|
存储引擎 | 存储数据,提供读写接口 |
存储引擎负责数据的存储和读取。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。MySQL5.5后默认引擎是InnoDB。所有存储引擎共用Server层。
连接器
第一步,你会先连接上这个数据库,这时候接待你的是连接器。连接器负责跟客户端建立连接、获取权限、维持和管理连接。
1 | mysql -h$ip -P$port -u$user -p |
登录失败,收到”Access denied for user“;一个用户连接成功后,即使你的管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限,修改完成,新建连接权限将生效。
客户端如果太长时间没动静,连接器会自动断开,这个参数由”wait_timeout“控制的,默认八小时。如果断开连接,客户端再次发送请求,报:”lost connection to mysql server during query”,只能重连。