MySQL存储引擎及其区别
存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。
常见存储引擎:
- InnoDB:支持ACID事务,提供行级锁和外键的约束。处理大数据容量
- MyISAM:不提供事务支持,不支持行级锁和外键
- memory:数据存在内存
InnoDB与MyISAM区别:
- InnoDB聚簇索引,MyISAM非聚簇索引
- MyISAM叶子节点只存储行数据地址,需要再寻址才能找到数据
- InnoDB主键索引的叶子节点存储行数据,主键索引很高
- InnoDB非主键索引的叶子节点存储的是主键和其他索引的列数据,覆盖索引效率高
使用场景:
MyISAM:读写插入为主,比如博客,新闻门户
InnoDB:更新删除频率高,或者数据完整性;并发性高,支持事务和外键,比如自动化办公系统