极客时间MySQL实战45讲笔记 一 .基础架构

1. Mysql的基础架构

1.1. MySQL基础架构示意图

从上图上能够看出,mysql分为Server层和存储引擎两部分mysql

Server包括链接器、查询缓存、分析器、优化器、执行器等。以及全部的内置函数,还有存储过程、触发器视图等。sql

存储引擎负责数据的存储和提早。其架构模式是插件式,支持InnoDB、MyISAM、Memory等多个存储引擎。缓存

不一样的存储引擎公用一个server层。架构

1.2 server各个部分的做用

  1. 链接器函数

    负责与客户端创建连接、获取权限、位置和管理连接优化

    mysql -h$ip -P$port -u$user -p

    用户成功链接以后,链接器会到权限表里面查出该用户所拥有的权限。以后该链接以内的权限判断都会依赖已经督导的权限。即:*若是修改已经链接的用户权限须要从新链接以后才能生效。插件

    若是链接以后,客户端长时间没有操做,链接器会自动断开。这给时间是由参数wait_timeout控制的,默认时间为8小时。3d

    mysql中长链接是指**链接成功以后,若是客户端持续有请求,则一直使用统一给链接。短连接则是指每次执行完不多的几回查询就断开链接,下次查询再从新创建一个。code

    大量使用长链接,内存占用过大的问题解决办法:server

    • 按期断开长链接、或者在执行一个占用较大内存查询以后,断开链接
    • Mysql5.7 以后的版本,可使用mysql_reset_connection来从新初始化链接资源
  2. 查询缓存

    mysql执行select以前,会先从查询缓存中判断是否执行过该sql

    只要对一个表的更新,该表上的全部查询缓存都会被清空

    若是有必要,能够经过显示的方式使用查询缓存

    select sql_cache * from T where id = 1;

    mysql8.0版将查询缓存删除了

  3. 分析器

    主要是对输入的语句进行解析,并判断是否知足mysql的语法要求

  4. 优化器

    优化器是在表中存在多个索引的时候,决定使用哪一个索引;或者一个语句有夺标关联的时候,决定各个表的链接数据顺序。

  5. 执行器

    判断是否有权限对表的操做,若是有则调用引擎接口,进行数据处理。

相关文章
相关标签/搜索