存储引擎是Mysql的组件,用于处理不同表类型的SQL操作,InnoDB是默认的存储引擎。利用SHOW ENGINES;
来查看当前Mysql Server可以使用的存储引擎。
MYSQL 8.0 支持的存储引擎
- InnoDB:
mysql默认的存储引擎,符合Mysql的事务安全(ACID),支持行级锁,提高多用户的并发。InnoDB是数据和索引存储在一起的聚簇索引,减少I/O。也支持外键约束,提高完整性。 - MySIAM:
支持表压缩,缩小表占用空间,支持表级锁,限制了读写性能,因此通常以只读或者多操作较多的场景使用。 - Memory:
将所有数据存储在RAM内存中,适用于存储需要快速查找但是非关键的数据。 - CSV:
类似文件数据引擎,存储CSV格式的文件,数据以逗号隔开。 - Blackhole:
只接受数据不返回数据,适用于副本数据引擎。 - NDB:
适用于搭建集群的数据引擎,提高数据的可用性。 - Merge:
对MyIASM的分组的数据引擎,适用于数据仓库。 - Federated:
逻辑数据引擎。 - Archive:
适用于数据归档的数据引擎。 - Example:
提供给开发人员示例的数据引擎。
数据引擎的功能摘要
Feature | MyISAM | Memory | InnoDB | Archive | NDB |
---|---|---|---|---|---|
B-Tree索引 | √ | √ | √ | × | × |
备份/时间恢复 | √ | √ | √ | √ | √ |
集群数据支持 | × | × | × | × | √ |
聚集索引 | × | × | √ | × | × |
压缩数据 | √ | × | √ | √ | × |
数据缓存 | × | × | √ | × | √ |
加密数据 | √ | √ | √ | √ | √ |
外键支持 | × | × | √ | × | √ |
全文检索索引 | √ | × | √ | × | × |
地理空间类型支持 | √ | × | √ | √ | √ |
地理空间索引支持 | √ | × | √ | × | × |
哈希索引 | × | √ | × | × | √ |
索引缓存 | √ | × | √ | × | √ |
锁定粒度 | 表级锁 | 表级锁 | 行级锁 | 行级锁 | 行级锁 |
MVCC | × | × | √ | × | × |
复制支持 | √ | √ | √ | √ | √ |
存储限制 | 256TB | 内存 | 64TB | 不限制 | 384EB |
T-tree索引 | × | × | × | × | √ |
事务 | × | × | √ | × | √ |
更新字典统计信息 | √ | √ | √ | √ | √ |