我是靠谱客的博主 勤奋豆芽,最近开发中收集的这篇文章主要介绍mysql工作流程_MySQL:基础架构和工作流程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 基本架构

081ebd5540edf332968f5e955c03f762.png

大体来说,MySQL可以分为Server层和存储引擎两部分。

Server层包括链接器,分析器,优化器,执行器等,涵盖大多数核心服务功能,一般跨存储引擎的功能都在这一层实现,比如存储过程,触发器,视图等。

存储引擎负责数据的存储和提取。其架构模式是插件式,支持InnoDB,MyISAM,Memory等存储引擎,MySQL5.5.5版本后默认引擎为InnoDB。

1.1 连接器

负责和客户端建立连接,获取权限,维持和管理连接。

常用命令:mysql    -h127.0.0.1    -P3306    -uroot  -p123456

连接认证通过后,连接器在权限表中查询你拥有的权限,之后这个连接的权限逻辑判断都依赖此时读到的权限。这意味着一个连接一旦建立后,之后就算修改这个用户的权限,也不会影响已经存在连接的权限。

可以通过 show processlist查看当前所有连接的状态;

0551e646124f7acac1666d9830cfc41e.png

连接完成后如果没有其他操作,将处于空闲状态,空闲状态的连接存在时间有一定限制。由参数wait_timeout控制,默认8小时。

关于连接的优化:

1. 定期断开连接。使用一段时间或者执行过一个占用内存的大查询之后主动断开连接;

2. 在5.7版本后,可通过执行 mysql_reset_connection 重新初始化连接;

1.2 查询缓存

执行查询语句时,先在缓存中查询,缓存命中失败后再去数据库查询;

一般以查询语句为 key, 查询的结果集为 value ,以键值对的形式将查询结果缓存在内存中。

优点:查询缓存命中率较高时,可以大幅提高查询效率;

缺点:一般情况下缓存失效的情况较多,一旦对某个表进行更新,这个表的所有查询缓存会被清空;

8.0 版本已经不支持查询缓存功能。

1.3 分析器

根据语法规则判断SQL语句是否满足SQL语法,判断表是否存在,列是否存在等等;

1.4 优化器

根据索引或其他规则,优化SQL语句,可能更改SQL语句的执行顺序,但是不会影响查询结果;

1.5 执行器

执行SQL语句之前,进行权限校验,然后进行操作;

最后

以上就是勤奋豆芽为你收集整理的mysql工作流程_MySQL:基础架构和工作流程的全部内容,希望文章能够帮你解决mysql工作流程_MySQL:基础架构和工作流程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部