MySQL的存储引擎有哪些?它们之间的区别是?当前版本MySQL 8.4版本一共提供10种存储引擎,详见官网。下面说几个常见和常用的引擎及其特点。
常用引擎InnoDB是MySQL的默认存储引擎 (MySQL 5.5.5之后)
特点:
支持事务、外键、MVCC (多版本并发控制)
使用聚簇索引 (聚集索引)
使用数据缓存和索引缓存 (实现: Buffer pool)
支持行级锁
读写阻塞主要看事务隔离级别
MyISAM是一个读性能比较好、存储限制更大的存储引擎
特点:
不支持事务、外键和MVCC
使用非聚簇索引
使用索引缓存
锁的粒度只到表级锁 (也就是说这个存储引擎加锁的话就是锁整表)
读写相互阻塞 (因为表锁)
MEMORY是把数据存储到内存中的存储引擎,数据库重启数据消失。
NDBCluster支持高可用性和数据分布,适合大型分布式场景
特点:
支持行级锁、自动分区