MySQL 技术内幕阅读笔记(0)--- InnoDB 体系结构和存储引擎
MySQL 刘宇帅 6年前 阅读量: 1488
MySQL 体系结构
从图我们可以看出,MySQL 有如下几部分组成:
- 连接池组件
- 管理服务和工具组件
- SQL 接口组件
- 查询优化组件
- 优化器组件
- 缓冲组件
- 插件式存储引擎
- 物理文件
需要注意存储引擎是基于表的而不是库,比如我们可以在建表的时候为表指明存储引擎。
MySQL 存储引擎
常见存储引擎
- InnoDB MySQL 5.5.8 版本之后的默认存储引擎,事务性,行锁,支持外键。
- MyISAM 存储引擎不支持事务、表锁,支持全文索引,主要面对一些 OLAP 数据库应用。MySQL 5.5.6 版本之前的默认存储引擎。
- NDB 存储引擎是一个集群存储引擎。
- Memory 存储引擎将表中的数据存在内存中,非常适合做临时数据的临时表和数据仓库的维度表。
- Archive 存储引擎只支持 INSERT 和 SELECT 操作。使用 zlib 算法压缩数据行。
- 等等
Memory 存储引擎虽然是内存操作,但是只支持表锁,并发性能差,并且不支持 TEXT 和 BLOB 列类型,MySQL 数据库使用 Memory 存储引擎作为临时表来存放查询中的中间结果集,如果中间结果集大于 Memory 存储引擎的容量设置又或者中间结果包含 BLOB 和 TEXT 列类型字段,则 MySQL 会把其转化为 MyISAM 表并存放到磁盘上,并且 MyISAM 本身不缓存数据文件,因此这时产生的临时表的性能将极大下降。
连接 MySQL
MySQL 服务器就是一个进程,支持通常的进程通信方式。
- TCP/IP
- 命名管道和共享内存
- UNIX 域套字节