本文共 836 字,大约阅读时间需要 2 分钟。
最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。
有关内容地址如下:
1. MySQL被设计成一个单进程多线程架构的数据库,MySQL数据库实例在系统上的表现就是一个进程
2. 当启动实例时,读取配置文件,根据配置文件的参数来启动数据库实例;若没有,按编译时的默认参数设置启动
3. MySQL体系结构
结构 | 说明 |
---|---|
Connectors | 不同语言中与SQL的交互 |
Management Services & Utilities | 管理服务和工具组件,例如备份恢复、MySQL复制、集群等 |
Connection Pool | 连接池组件,管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求 |
SQL Interface | SQL接口组件,接收用户的SQL命令,并且返回用户需要查询的结果 |
Parser | 查询分析器组件,SQL命令传递到解析器的时候会被解析器验证和解析 |
Optimizer | 优化器组件,对查询进行优化 |
Cache & Buffer | 缓冲组件,查询缓存,如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据,MySQL 8被取消 |
Engine | 插件式存储引擎,是MySQL中具体与文件打交道的子系统,是MySQL中最具特色的一个地方 |
File System | 物理文件 |
4. InnoDB存储引擎
存储引擎是基于表的,而不是数据库
■ 支持事务:行锁设计、支持外键
■ 将数据放到一个逻辑的表空间中,ibd文件
■ 通过多版本并发控制(MVCC)来获得高并发性,并且实现了SQL的4个标准隔离级别,默认为可重复读
■ 提供插入缓存、二次写、自适应哈希索引、预读等高性能和高可用的功能
■ 采用聚集的方式存储表中数据,按主键的顺序进行存放。没有指定主键,会为每一行生成一个6字节的ROWID,并以此作为主键
5. MyISAM
不支持事务、表锁设计、支持全文索引
转载地址:http://mnqen.baihongyu.com/