跳至内容← 计算机计算机约 2 分钟阅读
Mysql存储引擎
计算机

存储引擎
innodb
- 支持事务
- 行锁
- 外键
- 非锁定读 默认读取操作不产生锁
- 文件类型:idb
- 表存储 每张表的存储按照主键顺序存放 没有显示主键 每行生产一个6字节的ROWID,并以此做主键
- 通过mvcc获得高性能
- 实现4种隔离级别 默认repeatable next-key locking 避免幻读
- 插入缓冲 二次写 自适应哈希索引 预读
myISAM
- mysql官方提供引擎
- 不支持事务
- 支持表锁 全文索引
- 对于oltp处理速度快
- 除windows以外 所有mysql版本默认存储引擎
- 文件myd数据文件 myi索引文件
- 5.0以前是边4G上限 以后是默认支持256T
- ndb
- Sony 集群引擎
- 数据全部放在内存中
- join操作是在mysql层 复制的join操作查询慢
memory
- 表中数据存放在内存中
- 适用存储临时表 数据仓库中的纬度表 哈希索引
- 不支持表锁 并发性能差 不支持text 和blob存储varchar定长char存储浪费内存
- 中间结果集含text等适用myisam存储临时文件
archive
- 支持insert和select操作
- 行压缩1:10
- 适合存储归档数据日志 不支持高并发
federated
Maria
- 新版myisam 缓存数据和索引文件 行锁 mvcc
show engines\G;
链接mysql
- 进程链接 管道 套接字
- Tcp/ip 检查权限视图 判断ip是否允许 user表
- uinx域套接字
Innodb 架构
- 内存池
- 维护进程访问的内部数据结构
- 缓存磁盘数据
- 重做日志缓冲
- 默认7线程 4个io1个mater 1个锁1个错误监控
内存
- 缓冲池 重做日志缓冲 额外缓冲
- 数据库文件按页读取到缓冲池16k