mysql 支持的存储引擎包括:InnoDB存储引擎、MyISAM存储引擎、NDB存储引擎、Memory存储引擎、Archive存储引擎、Federated存储引擎、Maria存储引擎 等
一、InnoDB 存储引擎
支持事务,其设计目标主要面向在线事务处理(OLTP)的应用。其特点是行锁设计、支持外键,默认读取操作不会产生锁。从 MySQL 数据库 5.5.8 版本开始,InnoDB 存储引擎是默认的存储引擎。
InnoDB 存储引擎将数据放在一个逻辑的表空间。从 MySQL 4.1 版本开始,他可以将每个 InnoDB 存储引擎的表单独存放到一个独立的 ibd 文件中。
InnoDB 通过使用多版本并发控制(MVCC)来获得高并发性,并且实现了 SQL 标准的 4 种隔离级别,默认为 repeatable 级别。InnoDB 存储引擎还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高性能和高可用的功能。
对于表中数据的存储,InnoDB 存储采用了聚集(clustered)的方式,因此每张表的存储都是按主键的顺序进行存放。如果没有显式的表定义时指定主键,InnoDB 存储引擎会为每一行生成一个 6 字节的 row_id,并以此作为主键。