# mysql支持哪些存储引擎

2023-12-23 09:40:32

查看mysql使用的存储引擎

执行show engines;下方DEFAULT为InnoDB存储引擎
在这里插入图片描述
Supports transactions, row-level locking, and foreign keys 意思是支持事物,行级锁,外键。
MySQL 5.5.5 之前,MyISAM 是 MySQL 的默认存储引擎。5.5.5 版本之后,InnoDB 是 MySQL 的默认存储引擎。

查询mysql版本

执行select version();
在这里插入图片描述
可以看到我的mysql版本是8.2.0,所以默认的存储引擎为InnoDB
直接执行SHOW VARIABLES LIKE ‘%storage_engine%’;也可以查看搜索引擎。
在这里插入图片描述

InnoDB和MyISAM的区别

  1. 锁粒度:InnoDB支持行级别的锁粒度,这意味着它可以在并发访问时更细粒度地控制数据的访问和修改。而MyISAM只支持表级别的锁粒度,无法同时并发地修改同一表中的不同行。

  2. 事务支持:InnoDB提供了事务支持,符合SQL标准,并实现了四个隔离级别(读未提交、读已提交、可重复读、串行化)。而MyISAM不支持事务,它的操作是自动提交的,无法进行回滚或保证数据的一致性。

  3. 外键支持:InnoDB支持外键约束,可以在表之间建立引用关系,确保数据的完整性和一致性。而MyISAM不支持外键约束,无法强制实施引用完整性。

  4. MVCC支持:InnoDB使用多版本并发控制(MVCC)来管理数据的并发访问。这意味着读操作不会被写操作所阻塞,同时保证了读取的数据是一致的快照。而MyISAM不支持MVCC,读操作和写操作可能会相互阻塞,影响并发性能。

  5. 索引结构:InnoDB和MyISAM都使用B+树作为索引结构,但它们的实现方式有所不同。InnoDB的主键索引和辅助索引都是B+树,而MyISAM的主键索引使用B+树,辅助索引使用B树。

  6. 安全恢复:InnoDB支持数据库异常崩溃后的安全恢复机制,通过事务日志(redo log)来恢复数据的一致性。而MyISAM不提供类似的安全恢复机制,如果发生异常崩溃,可能会导致数据损坏或丢失。

其他几种存储引擎的对比:

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_42476938/article/details/135112836
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。