mysql技术内幕(待更)

一、mysql组成部分

mysql技术内幕(待更)
组成部分:
1、连接池组件
2、管理服务和工具组件
3、SQL接口组件
4、查询分析器组件
5、优化器组件
6、缓存(cache)组件
7、插件式存储引擎
8、物理文件

1、mysql存储引擎

1.1 InnoDB存储引擎

1、支持事务,设计目标主要面向在线事务处理(OLTP)的应用。
2、行锁的设计(MyIsam只支持表锁),支持外键,支持(类似于Oracle的非锁定读)默认读操作不产生锁。
3、通过多版本并发控制(MVCC)来获取高并发性,实现了SQL标准的4中隔离机制,默认为REPEATABLE级别,通过next-key locking的策略来避免幻读。
4、采用聚集的方式,表的存储按主键的顺序存放
5、mysql技术内幕(待更)
(这里暂时只记录InnoDB,细节后面会慢慢展开,一个月没复习mysql,上面的知识点也有点模糊了)

1.2、存储引擎之间的比较

mysql技术内幕(待更)
通过SHOW ENGINES查看当前mysql数据库所支持的存储引擎:
mysql技术内幕(待更)
mysql技术内幕(待更)
mysql技术内幕(待更)

2、InnoDB体系架构

mysql技术内幕(待更)
InnoDB存储引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责的工作:
1、维护所有进程/线程需要访问的多个内部数据结构。
2、缓存磁盘上的数据,方便快速地读取,同时在对磁盘文件的数据进行修改前在这里缓存。
3、重做日志(redo log)缓冲。
mysql技术内幕(待更)

2.1、后台线程

后台线程是多线程模型,包括:
mysql技术内幕(待更)
mysql技术内幕(待更)
mysql技术内幕(待更)
mysql技术内幕(待更)
mysql技术内幕(待更)mysql技术内幕(待更)
3、Purge Thread
mysql技术内幕(待更)
mysql技术内幕(待更)
mysql技术内幕(待更)
4、Page Cleaner Thread
mysql技术内幕(待更)

2.2、内存

mysql技术内幕(待更)
mysql技术内幕(待更)
mysql技术内幕(待更)