MySQL技术内幕学习笔记(一):MySQL体系结构和存储引擎

第一章 MySQL体系结构和存储引擎

MySQL能保证在各平台上的物理体系结构的一致性。

定义数据库和数据库实例

数据库:物理操作系统文件或其他形式文件类型的集合

实例:MySQL数据库由后台进程以及一个共享内存区组成

数据库实例真正用于操作数据库文件的,一般来说一个实例对应一个数据库,在集群情况下,一个数据库被多个实例使用。

MySQL体系结构

  • 连接池组件
  • 管理服务和工具组件
  • SQL接口组件
  • 查询分析器组件
  • 优化器组件
  • 缓冲(cache)组件
  • 插件式存储引擎:是基于表的,而不是基于数据库
  • 物理文件

image-20210121200348107

存储引擎

分为官方存储引擎和第三方存储引擎,InnoDB本身也是第三方存储引擎,后被MySQL收购了。

InnoDB存储引擎

  • 支持事务,其设计目标主要面向在线事务处理(OLTP)的应用,特点是行锁设计、支持外键,并支持类似于Oracle的非锁定锁
  • 将数据放在一个逻辑的表空间里,这个表空间就像黑盒一样由引擎自身管理
  • 通过使用多版本并发控制(MVCC: multiple version concurrency control)来获得高并发性,并且实现了对SQL标准的4种隔离级别,默认为repeatable(可重复读)
  • 对于表中的数据采取聚集(clustered)的方式,按主键的顺序进行存放
  • 从MySQL5.5.8之后作为默认存储引擎

MyISAM存储引擎

  • 不支持事务表锁设计,支持全文索引,主要面向一些OLAP(online analytical processing)数据库应用
  • MySQL5.58之前的默认存储引擎
  • 存储引擎表由MYD与MYI组成,MYD存放数据文件,MYI存放索引文件
  • 缓冲池只缓冲索引文件,不缓冲数据文件

各个存储引擎之间的比较

主要关注InnoDB与MYISAM即可

image-20210121204459597

posted @ 2021-01-21 20:49  herrhu  阅读(82)  评论(0)    收藏  举报