当前位置:首页 > 经验 >

数据库系统的结构图(数据库系统体系结构)

来源:原点资讯(www.yd166.com)时间:2022-11-06 09:29:43作者:YD166手机阅读>>

专注于Java领域优质技术,欢迎关注

作者:Jay_huaxiao

前言

整理了一些Mysql数据库相关流程图/原理图,做一下笔记,大家一起学习。

1.mysql主从复制原理图

mysql主从复制原理是大厂后端的高频面试题,了解mysql主从复制原理非常有必要。

主从复制原理,简言之,就三步曲,如下:

  • 主数据库有个bin-log二进制文件,纪录了所有增删改Sql语句。(binlog线程)
  • 从数据库把主数据库的bin-log文件的sql语句复制过来。(io线程)
  • 从数据库的relay-log重做日志文件中再执行一次这些sql语句。(Sql执行线程)

如下图所示:

数据库系统的结构图,数据库系统体系结构(1)

上图主从复制分了五个步骤进行:

步骤一:主库的更新事件(update、insert、delete)被写到binlog

步骤二:从库发起连接,连接到主库。

步骤三:此时主库创建一个binlog dump thread,把binlog的内容发送到从库。

步骤四:从库启动之后,创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log

步骤五:还会创建一个SQL线程,从relay log里面读取内容,从Exec_Master_Log_Pos位置开始执行读取到的更新事件,将更新内容写入到slave的db

2.Mysql逻辑架构图

如果能在脑海中构建出MySql各组件之间如何协同工作的架构图,就会有助于深入理解MySql服务器

数据库系统的结构图,数据库系统体系结构(2)

Mysql逻辑架构图主要分三层:

1) 第一层负责连接处理,授权认证,安全等等

  • 每个客户端连接都会在服务器进程中拥有一个线程,服务器维护了一个线程池,因此不需要为每一个新建的连接创建或者销毁线程。
  • 当客户端连接到Mysql服务器时,服务器对其进行认证,通过用户名和密码认证,也可以通过SSL证书进行认证。
  • 一旦客户端连接成功,服务器会继续验证客户端是否具有执行某个特定查询的权限。

2)第二层负责编译并优化SQL

  • 这一层包括查询解析,分析,优化,缓存以及所有的的内置函数。
  • 对于SELECT语句,在解析查询前,服务器会先检查查询缓存,如果能在其中找到对应的查询结果,则无需再进行查询解析、优化等过程,直接返回查询结果。
  • 所有跨存储引擎的功能都在这一层实现:存储过程,触发器,视图。

3)第三层是存储引擎。

  • 存储引擎负责在MySQL中存储数据、提取数据。
  • 存储引擎通过API与上层进行通信,这些API屏蔽了不同存储引擎之间的差异,使得这些差异对上层查询过程透明。
  • 存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单地响应上层服务器的请求。

3.Innodb 逻辑存储结构图

从InnoDb 存储引擎的逻辑存储结构看,所有数据都被逻辑地存放在一个空间中,称之为表空间(tablespace)。表空间又由段(segment),区(extent),页(page)组成。页在一些文档中有时候也称为块(block)。 InnoDb 逻辑存储结构图如下:

数据库系统的结构图,数据库系统体系结构(3)

表空间(tablespace)

  • 表空间是Innodb存储引擎逻辑的最高层,所有的数据都存放在表空间中
  • 默认情况下,Innodb存储引擎有一个共享表空间ibdata1,即所有数据都存放在这个表空间中内。
  • 如果启用了innodb_file_per_table参数,需要注意的是每张表的表空间内存放的只是数据、索引、和插入缓冲Bitmap,其他类的数据,比如回滚(undo)信息、插入缓冲检索页、系统事物信息,二次写缓冲等还是放在原来的共享表内的。

段(segment)

  • 表空间由段组成,常见的段有数据段、索引段、回滚段等。
  • InnoDB存储引擎表是索引组织的,因此数据即索引,索引即数据。数据段即为B 树的叶子结点,索引段即为B 树的非索引结点
  • 在InnoDB存储引擎中对段的管理都是由引擎自身所完成,DBA不能也没必要对其进行控制。

区(extent)

  • 区是由连续页组成的空间,在任何情况下每个区的大小都为1MB
  • 为了保证区中页的连续性,InnoDB存储引擎一次从磁盘申请4~5个区
  • 默认情况下,InnoDB存储引擎页的大小为16KB,一个区中一共64个连续的区。

页(page)

  • 页是InnoDB磁盘管理的最小单位
  • 在InnoDB存储引擎中,默认每个页的大小为16KB
  • 从InnoDB1.2.x版本开始,可以通过参数innodb_page_size将页的大小设置为4K,8K,16K。
  • InnoDB存储引擎中,常见的页类型有:数据页,undo页,系统页,事务数据页,插入缓冲位图页,插入缓冲空闲列表页等。

4.Innodb页结构相关示意图

Innodb页结构单体图

InnoDB数据页由以下7部分组成,如图所示:

数据库系统的结构图,数据库系统体系结构(4)

首页 123下一页

栏目热文

数据库系统原理课程设计(数据库系统原理教学大纲)

数据库系统原理课程设计(数据库系统原理教学大纲)

第一章 数据库系统概述第一节 数据库基本概念知识点 001:数据库基本概念(单选、填空、简答)1.数据(Data):是描...

2022-11-06 09:44:41查看全文 >>

完整的数据库设计案例(数据库设计的四个阶段)

完整的数据库设计案例(数据库设计的四个阶段)

2,数据库设计2.1 数据库设计简介软件的研发步骤数据库设计概念数据库设计就是根据业务系统的具体需求,结合我们所选用的D...

2022-11-06 09:37:48查看全文 >>

数据库架构原理(数据库功能架构图)

数据库架构原理(数据库功能架构图)

紧接上篇《大型网站技术架构:核心原理与案例分析-第1篇 概述》4 瞬时响应:网站的高性能架构网站性能测试Web前端性能优...

2022-11-06 10:07:54查看全文 >>

大型数据库系统原理(数据库系统体系结构)

大型数据库系统原理(数据库系统体系结构)

什么是数据挖掘?关于什么是数据挖掘,很多学者和专家给出了不同的定义,以下我们列出几种常见的说法:“简单地说,数据挖掘是从...

2022-11-06 09:31:44查看全文 >>

数据库基础知识教程(oracle数据库详细教程)

数据库基础知识教程(oracle数据库详细教程)

大家可能都知道数据库是非常重要的一门技术。从事软件测试也都需要用到数据库。当然,数据库的水平也直接决定着我们工资的上限。...

2022-11-06 10:05:46查看全文 >>

数据库系统的组成(数据库系统的组成及特点)

数据库系统的组成(数据库系统的组成及特点)

一、什么是数据库数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是...

2022-11-06 09:30:33查看全文 >>

数据库系统原理题库(数据库系统原理复习)

数据库系统原理题库(数据库系统原理复习)

广开-形考-10546管理学基础1、下述对于信息沟通的认识中,哪一条是错误的()2、按照沟通的渠道或途径不同,沟通可以分...

2022-11-06 09:55:15查看全文 >>

数据库系统原理与开发(数据库原理及实现方法)

数据库系统原理与开发(数据库原理及实现方法)

一、源码特点 JSP 公司仓储系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的...

2022-11-06 09:59:04查看全文 >>

数据库系统架构图(数据库系统简介)

数据库系统架构图(数据库系统简介)

当今世界是一个充满着数据的互联网世界,各处都充斥着大量的数据。即这个互联网世界就是数据世界。支撑这个数据世界的基石就是数...

2022-11-06 09:57:13查看全文 >>

数据库系统原理详细版(数据库的原理图解)

数据库系统原理详细版(数据库的原理图解)

数据库系统原理【课程代码:04735】模拟测试《数据库系统原理》模拟测试一一、单项选择题:本大题共 15 小题,每小题 ...

2022-11-06 09:51:32查看全文 >>

文档排行