01 MySQL的基本架构

这篇具有很好参考价值的文章主要介绍了01 MySQL的基本架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

记录对林晓斌老师的《MySQL 实战 45 讲》课程学习路程。

01 MySQL的基本架构

MySQL的逻辑架构图

MySQL 分为 Server 层和存储引擎层两部分。

Server 层

功能:实现所有 跨存储引擎 的功能,比如存储过程、触发器、视图等。

连接器、查询缓存、分析器、优化器、执行器等,以及所有的内置函数(如日期、时间、数学和加密函数等)。

连接器

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

                                 mysql -h$ip -P$port -u$user -p
  • 长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接。
  • 短连接则是指每次执行完很少的几次查询就断开连接,下次查询再重新建立一个。

若全部使用长连接后,发现有些时候 MySQL 占用内存涨得特别快,从现象看就是 MySQL 异常重启。

可考虑以下两种方案解决:

  1. 定期断开长连接

  2. MySQL 5.7 或更新版本,可以在每次执行一个比较大的操作后,通过执行 mysql_reset_connection 来重新初始化连接资源。

    这个过程不需要 重连和重新做权限验证 ,但是会将 连接恢复到刚刚创建完时的状态


查询缓存

MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。

之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中。key 是查询的语句,value 是查询的结果。

如果查询能够直接在这个缓存中找到 key,那么这个 value 就会被直接返回给客户端。

大多数情况下不要使用查询缓存

因为查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。

需要注意的是,MySQL 8.0 版本直接将查询缓存的整块功能删掉了。


分析器

对 SQL 语句做解析,MySQL 需要识别出里面的字符串分别是什么,代表什么

先会做“词法分析“(识别是什么语句,比如通过select关键字,识别出这是查询语句),

然后做“语法分析”(判断输入 SQL 语句是否满足 MySQL 语法)。

一般语法错误会提示第一个出现错误的位置,所以你要关注的是紧接“use near”的内容。


优化器

优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。


执行器

MySQL 通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。

开始执行的时候,要先判断一下对这个表 T 有没有执行查询的权限

如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口

存储引擎层

负责数据的存储和提取。其架构模式是插件式的。

引擎类型默认InnoDB。

不同的存储引擎共用一个 Server 层。文章来源地址https://www.toymoban.com/news/detail-826718.html

到了这里,关于01 MySQL的基本架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 01:mysql基本操作---DDL

    目录 前言: 1:SQL分类 2:类型 3:sql表的创建----简单版本 前言: 1:SQL语句可以单行或多行书写,以分号结尾。 2:SQL语句可以使用空格/缩进来增强语句的可读性。 3:MySQL数据库的SQL语句不区分大小写,建议使用大写 4:注释: 单行注释:-- 注释内容或#注释内容(MySQL特有) 多行注释

    2024年02月04日
    浏览(28)
  • 读高性能MySQL(第4版)笔记01_MySQL架构(上)

    1.2.2.1. 存储过程 1.2.2.2. 触发器 1.2.2.3. 视图 3.3.2.1. 共享锁(shared lock) 3.3.2.2. 资源上的读锁是共享的,或者说是相互不阻塞的 3.3.3.1. 排他锁(exclusive lock) 3.3.3.2. 写锁则是排他的,也就是说,一个写锁既会阻塞读锁也会阻塞其他的写锁 3.3.3.3. 只有这样才能确保在特定的

    2024年02月13日
    浏览(32)
  • 01_什么是ansible、基本架构、ansible工作机制、Ansible安装、配置主机清单、设置SSH无密码登录等

    1.什么是ansible 1.1.基本介绍 1.2.基本架构 1.3.基本特征 1.4.优点 1.5.ansible工作机制 2.Ansible安装 2.1.机器准备 2.2.安装ansible 2.2.1.安装epel源 2.2.2.安装ansible 2.2.3.查看ansible版本 2.2.4.树状结构展示文件夹 2.2.4.1.其中ansible.cfg的内容如下 2.2.4.2.host的默认内容是 2.3.配置主机清单 2.4.设置

    2024年02月14日
    浏览(30)
  • Gowin FPGA学习记录——前言

            好久没有写博客了,想想是不是又该写点啥东西了么,准备写点国产FPGA的使用经历吧                  得益于目前国内的政策对国产化芯片扶持,越来越要求核心器件能够自主可控,因此作为核心芯片FPGA,国产FPGA的势头也发展很快。          现在FPGA的这

    2024年02月16日
    浏览(31)
  • 【MySQL】记录的基本操作

    为表中所有字段插入数据 基本语法 INSERT INTO 表名(字段名1,字段名2,…) VALUES (值 1,值 2,…); 示例 为表中指定字段插入数据 基本语法 INSERT INTO 表名(字段名1,字段名2,…) VALUES (值 1,值 2,…); 示例 同时插入多条数据 基本语法 INSERT INTO 表名 [(字段名1,字段名2,…)]VALUES (值 1,值

    2024年02月08日
    浏览(32)
  • 从零开始理解Linux中断架构(1)-前言

    前言         前段时间在转行手撸WIFI路由器,搞wifi路由器需要理解网络驱动程序,以太网卡驱动程序,无线WIFI驱动程序,而网卡驱动的关键路径就在中断程序中,需要了解NIC设备驱动程序如何收发数据,为了彻底的知道数据包是如何二层传递上来的,又需要了解一点Lin

    2024年02月09日
    浏览(44)
  • MySQL(一)基本架构、SQL语句操作、试图

    MySQL(一)基本架构、SQL语句操作、试图 MySQL(二)索引原理以及优化 MySQL(三)SQL优化、Buffer pool、Change buffer MySQL(四)事务原理及分析 MySQL(五)缓存策略 MySQL(六)主从复制 数据库三范式 MySQL是关系型数据库。数据库就是用来保存数据的。 那关系型又是什么意思? 关

    2024年02月16日
    浏览(23)
  • MySql前言

    🎥 个人主页:Dikz12 🔥个人专栏:MySql 📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香 欢迎大家👍点赞✍评论⭐收藏 目录  数据库有哪些软件??  Mysql  MySql数据存储 mysql安装 mysql重装                                                          Oracle: 数据

    2024年02月01日
    浏览(31)
  • Vue2+Vue3笔记(尚硅谷张天禹老师)day01

    声明:只是记录,初心是为了让页面更好看,会有错误,我并不是一个会记录的人,所以有点杂乱无章的感觉,我先花点时间把视频迅速过掉,再来整理这些杂乱无章的内容 下载vue:Vue下载 下面两个是可选的,主要是我想让控制台干净点 vue_dev_tool安装 vue_dev_tool安装 : Vue 控制台出现

    2024年02月11日
    浏览(29)
  • Django框架入门到精通(01)Django概要 (黄菊华老师大学生毕业设计学习教程)

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包