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

原文链接: https://my.oschina.net/u/575836/blog/3023338

1. Mysql的基础架构

1.1. MySQL基础架构示意图

极客时间MySQL实战45讲笔记 一 .基础架构_第1张图片从上图上可以看出,mysql分为Server层和存储引擎两部分

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

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

不同的存储引擎公用一个server层。

1.2 server各个部分的作用

  1. 连接器

    负责与客户端建立链接、获取权限、位置和管理链接

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

    用户成功连接之后,连接器会到权限表里面查出该用户所拥有的权限。之后该连接之内的权限判断都会依赖已经督导的权限。即:*如果修改已经连接的用户权限需要重新连接之后才能生效。

    如果连接之后,客户端长时间没有操作,连接器会自动断开。这给时间是由参数wait_timeout控制的,默认时间为8小时。

    mysql中长连接是指**连接成功之后,如果客户端持续有请求,则一直使用统一给连接。短链接则是指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个。

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

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

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

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

    如果有必要,可以通过显示的方式使用查询缓存

    select sql_cache * from T where id = 1;
    

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

  3. 分析器

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

  4. 优化器

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

  5. 执行器

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

转载于:https://my.oschina.net/u/575836/blog/3023338

你可能感兴趣的:(极客时间MySQL实战45讲笔记 一 .基础架构)