mysql-InnoDB存储引擎

名词

  • 在线事务处理(OLTP online transaction processing):OLTP是传统的关系型数据库的主要应用,主要基本的、日常的事务处理,例如银行交易,OLTP系统强调数据库内存效率,强调内存各种指标命令率,强调绑定变量,强调并发操作
  • 在线分析处理(OLAP online Analytical Processing):数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLAP系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。https://www.cnblogs.com/hhandbibi/p/7118740.html
  • 行锁
  • 非锁定读:默认读取操作不会产生锁
  • 多版本并发控制:
  • 隔离级别 默认repeatable
  • 插入缓存
  • 二次写
  • 自适应哈希索引
  • 预读
  • 聚集:每张表的存储都是按主键顺序存放,如果没有显式指定主键,InnoDB会为每一行生成一个6字节的RowID,并作为主键
  • next-key locking 策略,
  • LRU算法

InnoDB:主要面向在线事务处理(OLTP)的应用,行锁设计,支持外键,支持非锁定读,从MySQL5.5.8版本开始,InnoDB是默认的存储引擎

MyISAM:不支持事务、表锁设计,支持全文索引,主要面向一些OLAP数据库应用。从MySQL5.5.8版本之前,MyISAM是默认的存储引擎,myISAM的缓冲池只缓存索引文件,不缓存数据文件,myISAM存储引擎表由MYD和MYI组成,MYD用来存放数据文件,MYI用来存放索引文件

NDB:是一个集群存储引擎,特点是数据全部放在内存中,

Memory存储引擎:默认使用哈希索引,也是表中的数据存放在内存中,如果数据库重启,或发生崩溃。表中的数据都会消失,所以比较适合用于i存储临时数据的临时表。

archive存储引擎:只支持insert和select操作,5.1版本之后开始支持索引,其设计目标主要是提供高速的插入和压缩功能。

SHOW ENGINES 查看当前使用的MySQL数据库所支持的存储引擎

mysql-InnoDB存储引擎_第1张图片

mysql-InnoDB存储引擎_第2张图片

mysql-InnoDB存储引擎_第3张图片

  • master thread
  • IO thread
    show engine innodb status //观察innodb中的IO thread
  • purge thread 回收已经使用并分配的undo页
  • Page clean thread :将之前版本中的脏页的刷新操作都放入到单独的线程去完成,减轻master thread的工作,

缓冲池

innodb存储引擎是基于磁盘存储的,由于cpu和磁盘之间的鸿沟,通常使用缓冲池进行提高数据库的整体性能

你可能感兴趣的:(mysql)