mysql 存储过程循环一张表的所有记录_我所理解的MySQL(一)基础架构

本文是MySQL系列的第一篇,介绍了MySQL的基础架构和日志模块,包括连接器、查询缓存、分析器、优化器、执行器、存储引擎、redo log和bin log。重点讲解了InnoDB存储引擎的redo log,以及其在数据库异常重启时确保事务持久性的功能。同时提到了bin log在主从复制中的作用。
摘要由CSDN通过智能技术生成

你好,有幸相见。

从九月开始,我决定发起「每周一博」的目标:每周至少发布一篇博客,可以是各种源码分析研读,也可以是记录工作中遇到的难题。

在经过了一段时间漫无目的的学习之后,我发现那样用处好像不大,看过的东西过段时间就忘了,而且也没有做什么笔记。

“凡所学,必有所输出。”我认为这才是最适合我的学习方式,这也是「每周一博」活动的来由,朋友们,如果你也觉得经常会忘记以前看过的东西,一起加入这个活动吧。

这是九月的第四篇博客,也是 MySQL 系列的第一篇,本文首发于 ?JavaGeekers。


作为一个正经的 CRUD 工程师,与数据库的交互是日常工作中比重较大的内容,比如日常迭代的增删改查、处理历史数据、优化 SQL 性能等等。随着项目数据量的增长,从前为了赶项目进度而埋下的深坑正慢慢显露它们的威力,这也让我不得不全面且深入的学习 MySQL,而不仅仅是停留在基础的 CRUD 上。

MySQL 系列的第一篇,主要介绍 MySQL 的基础架构以及各个组成部分的功能,包括 Server 层的 bin log 和 InnoDB 特有的 redo log 这两种日志模块。

1. MySQL 架构简介

根据 DB-Engines 发布的?最受欢迎的数据库管理系统排行榜,MySQL 稳坐第二把交椅。

7e22fb09486fbec6cfc80f914589badd.png
2020年9月最受欢迎的DBMS排行榜

作为最受欢迎的关系型数据库管理系统之一,MySQL 采用的是C/S架构,即 Client & Server 架构。比如开发者使用 Navicat 连接到 MySQL,那么前者就是客户端,后者就是服务端。

同时,MySQL 也是单进程多线程的数据库。这很好理解,正在运行的 MySQL 实例就是那个“单进程”,而在这个进程中会有很多个线程,比如主线程 Master ThreadIO Thread 等,这些线程被用于处理不同的任务。

2. MySQL 组成部分

前面说到 MySQL 采用的是C/S架构,用户通过客户端连接到 MySQL 服务器,然后提交 SQL 语句到服务器,然后服务器就会把执行结果返回给客服端。

在这一小节的内容中,我们主要关注 MySQL 服务端的逻辑组成,先来看一张图。

4b7cc55824d1f7391bf08f85a63dd123.png
MySQL 逻辑架构图

从上图可以看到,与客户端的交互中,MySQL 的服务端分别经过了连接器、查询缓存、分析器、优化器、执行器和存储引擎这几部分。

下面就以一条简单的查询语句来描述 MySQL 服务端的各组成部分及它们所起的作用。

2.1 连接器

在客户端提交查询语句之前,需要与服务端建立连接。所以最先来到的是连接器,连接器的作用就是负责与客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值