首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关系型数据库 MySQL 体系结构详解

通过前面几篇文章学会如何安装 MySQL 以及基础知识后,我们还需要学习体系结构MySQL 和 Oracle 体系结构类似,如果学过 Oracle 可以类比记忆,基础牢固才能学好数据库,才能做一个合格的...MySQL 体系结构可分为两层,MySQL Server 层和 存储引擎层,而 MySQL Server 层又分为连接层和 SQL 层,连接层包括通信协议、线程处理、用户名密码认证,SQL 层包含权限判断...MySQL 体系结构 1、Connectors 指的是不同语言的应用程序接口(如JDBC、ODBC、Python等)与 MySQL 的连接交互层; 2、Management Serveices &Utilities...解析器是由 Lex 和 YACC 实现的,是一个很长的脚本; 主要功能: l 将 SQL 语句分解成数据结构,并将这个结构传递到后续步骤,以后 SQL 语句的传递和处理就是基于这个结构的; l 如果在分解构成中遇到错误...InnoDB 是 MySQL 数据库 5.5 版本后的默认存储引擎,默认所说的 MySQL 即指 InnoDB 存储引擎的 MySQL,那么关于 InnoDB 的体系结构下一次在一起来看看吧,今日就到这里啦

2.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关系型数据库 MySQL 之 InnoDB 体系结构

    一、InnoDB 体系结构 InnoDB 存储引擎是 MySQL 5.5 版本后的默认存储引擎,支持事务 ACID,回滚,系统崩溃恢复能力及多版本并发控制的事务安全,主要用于 OLTP 数据库业务场景...[MySQL 体系结构详解],介绍完 MySQL 体系结构,下面来一起学习 InnoDB 体系结构。...下图为 MySQL 5.7 官方手册下 InnoDB 体系结构,详情可见官方手册。 ? InnoDB存储引擎主要包括多个内存池以及后台线程。...二、InnoDB 表逻辑结构 InnoDB 逻辑存储单元主要分为表空间、段、区和页,层级关系为tablespace——>segment——>extent(64 个 page, 1MB )——>page(...三、内存结构 MySQL 的内存结构和 Oracle 内存结构相似,也可分为 SGA(系统全局区)和 PGA(系统全局区),数据库的内存参数配置可以使用 [show variables like ‘%buffer

    1.3K10

    MySQL·关系模型

    关系模型 外键 在 students 表中,通过 class_id 的字段,可以把数据与另一张表关联起来,这种列称为外键。...通过定义外键约束,关系数据库可以保证无法插入无效的数据。即如果 classes 表不存在 id=99 的记录,students 表就无法插入 class_id=99 的记录。...索引 索引是关系数据库中对某一列或多个列的值进行预排序的数据结构。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条件的记录,这样就大大加快了查询速度。...在设计关系数据表的时候,看上去唯一的列,例如身份证号、邮箱地址等,因为他们具有业务含义,因此不宜作为主键。但是,这些列根据业务要求,又具有唯一性约束:即不能出现两条记录存储了同一个身份证号。...无论是否创建索引,对于用户和应用程序来说,使用关系数据库不会有任何区别。

    80530

    数据结构和算法关系

    数据结构:数据与数据之间的结构关系(数组、队列、树、图等结构) 算法:解决问题的步骤 总结: 1、程序 = 数据结构 + 算法 。数据是程序的中心。...数据结构和算法两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。没有数据间的有机关系,程序根本无法设计。 2、数据结构与算法关系:数据结构是底层,算法高层。数据结构为算法提供服务。...6、数据结构应用:数据结构往往同高效的检索算法、索引技术、排序算法有关 7、数据结构(逻辑数据结构)通过计算机语言来实现数据结构(存储数据结构)。...例如:树型数据结构:通过计算机语言中的数组(节点)和指针(指向父节点)来实现。 8、存储结构:逻辑数据结构的实现。存储结构通过计算机语言实现。...二、数据结构:分为逻辑数据结构和存储数据结构两种 (1)顺序存储方法(顺序存储结构) (2)链接存储方法(链式存储结构) 同一种逻辑结构可采用不同的存储方法(以上两种之一或组合),这主要考虑的是运算方便及算法的时空要求

    92421

    MYSQL回顾(表关系相关)

    数据库表有三种关系: 多对一 多对多 一对一 多对一 外键在“多”侧 比如有两个表,分别是书籍表和出版社表。书籍和出版社是典型的多对一关系,即一本书只能由一个出版社出版,一个出版社可以出版多本书。...| 1 | +----+-----------------+----------+ 3 rows in set (0.00 sec) 多对多 多对多因为都存在外键的依赖关系...需要第三张表来建立他们的外键关系,如下: ?...,一个客户有可能变成一个学生,即一对一的关系 关联方式:foreign key+unique 对于多对一的关系而言:关联表中的外键无需指定为unique,因为存在多个记录的外键指向被关联表的同一个记录...但对于一对一的关系而言:为了保证两张表记录的一一对应,需要把关联表的外键约束为unique ?

    5.9K20

    Mysql存储结构

    索引是一种加快查询速度的数据结构,常用索引结构有hash、B-Tree和B+Tree。本节通过分析三者的数据结构来说明为啥Mysql选择用B+Tree数据结构。 数据结构 Hash ?...: B+Tree 非叶子节点不存放数据 叶子节点存储关键字和数据,非叶子节点的关键字也会沉到叶子节点,并且排序 叶子节点两两指针相互连接,形成一个双向环形链表(符合磁盘的预读特性),顺序查询性能更高 Mysql...Mysql官网文档中写到InnoDB索引用的是 B-tree,但是底层用的是B+Tree。Mysql存储数据是以页为单位,默认一个页可以存放16K数据。...MySQL查询过程是按页加载数据的,每加载一页就是一次IO操作,B+Tree进行三次IO可以查询6700W数据量。从这里也可以知道Mysql一般设置三层深度就足够了。

    87120

    MySQL_关系的码,关系的完整性

    [toc] 关系的码 候选码 候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键 如: 学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名)都是候选码...R1,R2,其中属性集X是R1的非主码属性,但X是R2的主码,则称X是R1的外码(也叫外键、外部关系键),R1为参照关系,R2为被参照关系 外码的取值是由被参照的关系的主码的域决定的,也就是外码的域来自...因此学号或课程号不能单独作为主码 而学号和课程号分别是学生和课程的主码,则选课关系中,学号和课程号都是外码,并且学号和课程号是选课关系中的主属性 关系的完整性 为了维护关系数据库中数据与现实的一致性(...有如下三类 实体完整性:主码的值不能为空或部分为空 参照完整性:外码来自被参照关系的主码,且可以为空,但作为被参考的关系的主码不能为空(外码可以为空时,外码通常是非主属性) 用户自定义完整性:针对某一具体关系数据的约束条件...,第二,在构建选课关系用学号更便捷

    7510

    关于MySQL拓扑关系的梳理

    这是学习笔记的第 2227 篇文章 关于MySQL的拓扑关系,最近是比较困扰我的,主要是因为最近在思考重构元数据层面的一些东西,发现原来的一些设计方式已经不能够支持现在的业务特点了。...级联实例的关系不好体现 基于双主模式的复制拓扑难以体现 读写分离的关系不好体现 不支持跨机房容灾的复制关系 所以这些问题抛出来,也算是自我革命,整体上来看这种关系的维护是比较复杂的,如果碰到一些略微复杂的场景...如果是这种复制拓扑关系,基本上能够解决我们所说的拓扑关系。 ?...MySQL 8.0有个特性叫做replicaSet,这个特性的名字给了我新的启发,那就是我们可以按照复制集的角度去重新看待原来的拓扑关系。...不支持域名 一主多从的关系不够清晰 级联实例的关系不好体现 基于双主模式的复制拓扑难以体现 读写分离的关系不好体现 不支持跨机房容灾的复制关系 其实2,3,4,6是可以支持的,而对于域名服务的部分,目前看和复制拓扑没有直接的关系

    1.4K20

    Oracle 体系结构 – 逻辑和物理存储结构之间的关系

    逻辑结构和物理结构及其定义之间的关联在数据字典中定义。 物理数据库结构 Oracle数据库包括三类文件,以及其他几种数据库之外(或者说是可选的)的文件。...数据文件是系统管理员可以看见的物理结构。从逻辑上讲,它们是段(包含编程人员可以看到的用户数据的段,以及构成数据字典的段)的储存库。“段(segment)”是数据的存储结构,典型的段是表和索引。...逻辑数据库结构 Oracle使用术语“段”来描述任何包含数据的结构。典型的段是包含数据行的表,但是Oracle数据库包含十多种段类型。其中最引人关注的表段、索引段和撤销段。...如果使用“关系分析”术语,则段和数据文件之间存在多对多关系:可以将一个表分布在多个数据文件中,而一个数据文件也可能包含多个表的一部分。...连接模型的两端的关系显示一个表空间可以包含多个数据文件,从最低级别看,一个Oracle块将包含多个操作系统块。  数据字典 数据字典包含从逻辑上和物理上描述数据库及其内容的元数据。

    77710

    mysql查看表的数据结构_mysql查找表结构

    MySQL 查看表结构 mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create table 表名; use information_s...… mysql查看表结构命令 mysql查看表结构命令 mysql查看表结构命令,如下: desc 表名;show columns from 表名;describe 表名;show create table...表名; use inf … mysql查看表结构,字段等命令 mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create...’\G; mysql> show table status like ‘x’\G; . row … mysql 查看表结构方法 留给自己备查: mysql 导出为 csv 文件时如果直接使用导出命令是无法导出表结构的..., 因此我们需要能够查询表结构的方法: 方法如下: 1.desc(描述)命令 desc tablename;de … MySQL查看表结构及查看建表语句 查看表结构:desc 表名 mysql> use

    5.7K20

    MySQL的内存结构与物理结构

    “从MySQL的物理结构和内存结构开始了解MySQL的运行机制” ?...MySQL的数据存储结构主要分两个方面:物理存储结构与内存存储结构,作为数据库,所有的数据最后一定要落到磁盘上,才能完成持久化的存储。...内存结构为了实现提升数据库整体性能,主要用于存储临时数据和日志的缓冲。本文主要讲MySQL的物理结构,以及MySQL的内存结构,对于存储引擎也主要以InnoDB为主。 ?...01 — MySQL的物理结构 上图的 On-Disk Structures 主要是InnoDB存储引擎的磁盘结构,对于MySQL数据库来说,还包括一些文件、日志、表结构存储结构等。...参数文件指的是MySQL实例启动时,会先去读取的参数配置文件,配置内容包含各种文件的位置,一些初始化参数,这些参数定义了某种内存结构的大小设置,还包括一些其他配置,如:主从配置等。

    8.1K20

    mysql体系结构

    mysql8.0体系结构 image.png 图上看mysql服务是一个c/s架构 它是用c和c++开发的 Connectors 端 可以通过,各种各样的客户端,链接mysql服务器 如mysql命令...sql层 sql线程接收链接线程 预处理(lex) 语法,语义(语句是什么类型的),权限(访问的库或者表有没有权限) 检查 解析(yacc) 生成解析树 (ast抽象语法树) 优化 逻辑优化 基于关系代数的等价转换...和磁盘打交道的类似于linux的文件系统 image.png innodb存储引擎分为内存结构和磁盘结构...存储的宏观结构mysql中一个数据库,就在系统中就是一个目录 在mysql中一个表 对应操作系统中的一个.ibd文件(8.0) 在操作系统可以通过ibd2sdi 文件名 可以查看文件 表中记录的...mysql实例 mysqld守护进程 + Master Threa + Worker Threads + 预分配的内存 mysql的内存结构 global buffers(全局) innodb_buffer_pool

    1K41

    MySQL动态hash结构

    MySQL动态hash结构 1.常用的实现方式 前一段时间一直在研究mysql中的hash结构,大概搞清楚了这种no empty slot的hash结构,读了几篇关于mysql中的hash结构文章...,发现很多文章对于这种动态hash的关键点解释不够清楚,特此把这些天看mysql中hash的这段代码的体会写一下。...mysql中的hash结构不同于一般的那种用链表解决冲突的hash结构,链表解决冲突的hash结构用在memcached,jdk中,最常见的hash结构如下图: ?...2.无空闲空间的动态hash结构 mysql中的hash结构的特点就是没有浪费的空闲空间,数组是动态分配的,任何时刻,这个数组所开辟的空间总是和当前hash结构中元素的个数相同。...参考文章: mysql hash 源码分析 MySQL数据结构分析--HASH

    1.9K70
    领券