深入了解Mysql【二】存储引擎的比较
Mysql中插件式存储引擎是一个很重要的特点,存储引擎决定了如何存储和索引数据,是否使用事务等。
查看Mysql支持的存储引擎
mysql提供了多种存储引擎,我使用的mysql版本为5.7.23-log,其支持的存储引擎有:
图中,默认的存储引擎是InnoDB;
其中Transactions表示是否支持事务;
XA表示是否支持分布式XA规范;
Savepoints表示是否支持事务保存点;
Mysql常用存储引擎
这里简单的介绍几个存储引擎。
InnoDB存储引擎
- InnoDB存储引擎支持事务,使用行级锁设计,也支持外键(虽然很少用外键);
- InnoDB使用多版本并发控制(MVCC)来获得高并发性,并且实现了SQL标准的4中隔离级别,默认为repeatable read(允许幻读)。
- 对于表中数据的存储,InnoDB存储引擎采用了聚集的方式,因此每张表的存储都是按主键的顺序进行存放,如果没有显式的在表定义时指定主键,其会为每一行生成6字节的ROWID作为主键。
MyISAM存储引擎
- MyISAM存储引擎不支持事务、表锁设计,支持全文索引,面向OLAP数据库应用,比如数据仓库。
- MyISAM存储引擎表由MYD和MYI组成,MYD用来存储数据文件,MYI用来存储索引文件。
Memory存储引擎
- Memory存储引擎将表中的数据存放在内存中,如果数据库重启或者宕机,数据会丢失,适合存储临时数据。
- 默认使用哈希索引。
本篇学习了常用的存储引擎,因为我学习是参考着《MySQL技术内幕:InnoDB存储引擎》这本书,
所以下篇会学习一下InnoDB存储引擎的体系架构。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!