• 1 MySQL 的体系结构

    • 连接池组件
    • 管理服务和工具组件
    • SQL接口组件
    • 查询分析器组件
    • 优化器组件
    • 缓冲组件
    • 插件式存储引擎(体系结构的核心)
    • 物理文件
  • 2 InnoDB 概述

    • InnoDB存储引擎支持事务,设计目标主要面向在线事务处理OLTP的应用,其特点是行锁设计,支持外键,并支持类似于Oracle的非锁定读,即默认读取操作不会产生锁,5.58后成为默认引擎
    • InnoDB使用MVCC(多版本并发)控制来获得高并发性,并且实现了SQL标准的4种隔离级别
    • InnoDB还提供了插入缓冲,二次写,自适应哈希索引,预读等实用功能
    • InnoDB采用聚集索引的方式,每张表的存储都是按照主键的顺序进行存放
    • 最有效利用以及使用内存的cpu 的存储引擎,好性能,高扩展,高可用
  • 3 其他存储引擎概述

    • MyISAM :面向 OLAP,不支持事务

      • MyISAM不支持事务,表锁设计,支持全文索引,主要面向一些OLAP数据库应用。
      • 缓冲池只缓存索引文件,而不缓冲数据。
    • DNB: 集群存储引擎
      • 集群存储引擎
      • 数据全部放在内存中(5.1后可以在磁盘上存非索引数据),主键查找速度极快并且可以通过添加NDB数据存储节点可以线形提高数据库性能,是高性能高可用的集群系统。
      • 不过NDB的连接操作是在MySQL数据库层完成的,如果解决了这个问题,NDB的的市场是非常巨大的。
    • Memory: 数据存放内存
      • 之前称之为HEAP引擎,将数据存放在内存中,适合存储临时数据的临时表,以及数据仓库中的维度表
      • 使用哈希索引,而不是B+树
      • 并发性较差,存储变长字段是按照定长处理的,比较浪费内存
  • 4 InnoDB 体系结构

    • 多个内存块组成一个内存池,主要功能:

      • 缓存磁盘上的数据
      • 重做日志缓冲
      • 维护所有进程/线程需要访问的内部数据结构
    • 多线程模型
      • Master Thread:核心线程,主要负责将缓存池中数据异步刷新到磁盘
      • IO Thread: 处理IO请求,负责这些IO请求的毁掉函数处理
      • Purge Thread: 回收已经使用并分配的undo(重做日志)页
      • Page Cleaner Thread: 处理脏页的刷新操作。

转载于:https://www.cnblogs.com/wang-kai-1994/p/10810364.html

MySQL系列(一) MySQL体系结构概述相关推荐

  1. 刘道成mysql视频教程_燕十八刘道成Mysql 系列视频教程 Mysql视频教程打包下载

    课程名称 燕十八刘道成Mysql 系列视频教程 Mysql视频教程打包下载 课程介绍 本教程完全从初学者的角度出发,循序渐进,逐步深入,确保每一位初学者能够理解和掌握,进而达到精通的程度,本套教程非常 ...

  2. mysql数据类型查询命令_Linux命令:MySQL系列之三--mysql数据类型及SQL结构化查询语句使用...

    MySQL 存储引擎,也被称为表类型: MyISAM表:无事务处理功能,支持表锁 .frm:表结构定义文件 .MYD:表数据文件 .MYI:表索引文件 InnoDB表:支持事务处理功能,支持行锁 .f ...

  3. 【MySQL系列】 MySQL表的增删改查(进阶)

    目录 ??前言 ??一.数据库约束 ???1.1 约束类型 ???1.2 null约束 ???1.3 unique约束 ???1.4 default约束 ???1.5 primary key 约束 ? ...

  4. 《MySQL系列》MySQL详细入门教程

    MySQL学习 MySQL语法 一 事务 针对数据库多次DML操作的时候,保证数据完整性的一种手段 1 ACID A:Aotomicity:原子性.不可被分割.也就是说事务中的所有操作要么成功,要么失 ...

  5. 【Mysql系列】MySQL创建数据库、CURD的操作

    文章目录 创建数据库的命令 MySQL 数据类型 接下来就是在数据库里面创建表了 删除表 给表格中插入数据 查询数据 where语句的使用 修改数据 删除数据(这里我们讲的都是对表格内容进行的操作) ...

  6. MySql系列之mysql查询执行过程(附Mysql架构图及实操解析)

    一 MySql架构图 1.2 执行步骤: 1.客户端发送查询语句给服务器 2 服务器首先检查缓存中 是否存在该查询,若存在,返回缓存中存在的结果 不存在 执行下一步 3服务器进行sql解析 语法检测 ...

  7. 带你学MySQL系列 | 困扰MySQL初学者的分组聚合查询,我终于讲明白了!

    1.分组查询的原理图 对上述原始数据,按照DEPARTMENT_ID(员工id)分组统计SALARY(薪水)的平均值. 上述原理写成代码,应该怎么写呢? select department_id,av ...

  8. 【MySQL系列】MySQL数据库基础

    ☕目录☕  

  9. mysql maria引擎_MySQL体系结构和存储引擎概述

    一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级 ...

最新文章

  1. P8可以年入170万,那P10级别的程序猿,每天都在干嘛?
  2. [原创]什么是CMM?
  3. 【AngularJS】—— 8 自定义指令
  4. 二进制搜索树_将排序的数组转换为二进制搜索树
  5. mysql设计资源目录售卖_MySQL目录设计一些策略_mysql
  6. 获取时间,并将时间的空格和特殊字符去掉,作为一个变量来使用
  7. 软件工程复习提纲——第一章
  8. 利用JAVA获取远程文件及使用断点续传 供学习者使用
  9. ps制作20种特效文字_如何使用AE制作文字破碎动画?制作ae破碎文字特效教程分享...
  10. PHP表单常用正则表达式(URL、HTTP、手机、邮箱等)
  11. logstash收集TCP端口日志
  12. java json 根据 key排序
  13. java比python快多少倍_java为什么比python快
  14. HTC手机如何进行官方解锁Unlock
  15. office2018自动图文集_怎么才算工作里要求的“熟练使用office办公软件”?
  16. Pytorch 基于ResNet-18的物体分类(使用CIFAR-10数据集)
  17. 手把手入门C语言—输入数组
  18. discuz手机端默forum.php,discuz手机wap版模板开发方式简述
  19. Unity笔记-29-ARPG游戏项目-13-打击感(卡肉)与僵直感
  20. 14行Python代码,让AI和AI无限聊天,他们会聊出什么

热门文章

  1. vue 3.x 中使用ele-image时相对路径的图片加载失败
  2. 想尽快进入游戏开发行业的必经之路!
  3. [react] React的事件和普通的HTML事件有什么不同
  4. 前端学习(2921):vue的事件
  5. 前端学习(2914):差值表达式的用法
  6. 前端学习(2907):Vite的特点
  7. [html] 你知道微信端的浏览器内核是什么吗?
  8. [html] 举例说明使用data-有什么优点?
  9. [css] 一个页面引用多个文件,如何防止样式冲突?
  10. 工作195:解决key值不唯一的报错