0

MySQL的逻辑架构

 9 months ago
source link: http://www.lzhpo.com/article/178
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

MySQL的逻辑架构

MySQL的架构可以分为四层:

  1. 提供了各种语言连接客户端的方法。

  2. server层。

    也就是上图所画的server层,它包括了连接器、查询缓存、分析器、优化器、执行器等等。
    MySQL中所有跟存储引擎打交道的都在server层实现,比如:存储过程、触发器、视图等等。

    • 连接器:负责客户端的连接、获取用户权限、维持和管理连接。

    • 查询缓存:MySQL执行一个查询请求之前,会先查询缓存查看之前是否执行过这条语句,如果当前SQL能够在缓存中查询到结果,就会直接返回。

      更新操作比较多的表中,查询缓存的命中率十分低,因为,只要表一更新,缓存就失效了。

      在MySQL8.0之后直接移除了查询缓存。

    • 分析器:词法分析(识别关键字等等)、语法分析(判断SQL是否符合语法)

    • 优化器:若有多个索引,决定使用哪个索引;多表join,决定表的连接顺序等等。

    • 执行器:执行之前,判断用户对此表是否有权限,如果没有权限,则会返回没有权限的错误,反之,则调用存储引擎的接口,然后返回存储引擎执行的结果。

  3. 存储引擎层。

    负责数据的存储和提取(从物理文件层中)。

    常见的MySQL存储引擎如:InnoDB(MySQL5.5.5之后默认)、MyISAM、Memory等。

  4. 物理文件层。

    存储真正的表数据、日志(binlog、redo log、undo log…)等。

正文到此结束
所属分类:Java开发

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK