厦门集美建设局网站,公司注册资金最少是多少,建行官方网站登录,地域文化创意产网站建设规则mysql基础架构 示意图首先 mysql 大概分为 server层 和 存储引擎层 两个部分#xff0c; 引擎的架构模式是插件形式的#xff0c;mysql支持多种引擎如 InnoDB、MyISAM、Memory 等#xff0c;其中 Innodb是应用最广泛的#xff0c;mysql5.5.5版本后#xff0c;将Innodb设为…mysql基础架构 示意图首先 mysql 大概分为 server层 和 存储引擎层 两个部分 引擎的架构模式是插件形式的mysql支持多种引擎如 InnoDB、MyISAM、Memory 等其中 Innodb是应用最广泛的mysql5.5.5版本后将Innodb设为默认存储引擎。连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接。一个用户成功建立连接后即使你用管理员账号对这个用户的权限做了修改也不会影响已经存在连接的权限。修改完成后只有再新建的连接才会使用新的权限设置。连接完成后如果你没有后续的动作这个连接就处于空闲状态你可以在 show processlist 命令中看到它。文本中这个图是 show processlist 的结果其中的 Command 列显示为“Sleep”的这一行就表示现在系统里面有一个空闲连接。客户端如果太长时间没动静连接器就会自动将它断开。这个时间是由参数 wait_timeout 控制的默认值是 8 小时。如果在连接被断开之后客户端再次发送请求的话就会收到一个错误提醒 Lost connection to MySQL server during query。这时候如果你要继续就需要重连然后再执行请求了。show variables like wait_timeout ;show processlist数据库连接分为 长连接 和短连接 两种 长连接 可以复用短连接则是指每次执行完很少的几次查询就断开连接下次查询再重新建立一个。缓存缓存命中的条件比较苛刻必须是查询语句完全一样并且查询语句中相关表未在缓存后执行update insert等更新语句。所以尽量不要启用缓存功能。分析器做语句 词法分析 判断sql语句是否存在错误以及 错误列名/表名。例 MySQL 从你输入的select这个关键字识别出来这是一个查询语句。它也要把字符串“T”识别成“表名 T”把字符串“ID”识别成“列 ID”。优化器生成执行计划决定使用哪个索引决定选择join语句的驱动表。执行器开始执行的时候要先判断一下你对这个表 T 有没有执行查询的权限如果没有就会返回没有权限的错误。如果有权限就打开表继续执行。打开表的时候执行器就会根据表的引擎定义去使用这个引擎提供的接口。比如表 T 中ID 字段没有索引那么执行器的执行流程是这样的调用 InnoDB 引擎接口取这个表的第一行判断 ID 值是不是 10如果不是则跳过如果是则将这行存在结果集中调用引擎接口取“下一行”重复相同的判断逻辑直到取到这个表的最后一行。执行器将上述遍历过程中所有满足条件的行组成的记录集作为结果集返回给客户端。至此这个语句就执行完成了。对于有索引的表执行的逻辑也差不多。第一次调用的是“取满足条件的第一行”这个接口之后循环取“满足条件的下一行”这个接口这些接口都是引擎中已经定义好的。你会在数据库的慢查询日志中看到一个 rows_examined 的字段表示这个语句执行过程中扫描了多少行。这个值就是在执行器每次调用引擎获取数据行的时候累加的。在有些场景下执行器调用一次在引擎内部则扫描了多行因此引擎扫描行数跟 rows_examined 并不是完全相同的。