MySQL存储引擎有哪些?有什么区别
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。
在mysql中提供了很多的存储引擎,比较常见有InnoDB、MyISAM、Memory:
- InnoDB存储引擎是mysql5.5之后是默认的引擎,它支持事务、外键、表级锁和行级锁
- MyISAM是早期的引擎,它不支持事务、只有表级锁、也没有外键,用的不多
- Memory主要把数据存储在内存,支持表级锁,没有外键和事务,用的也不多
InnoDB存储引擎的特点
(1)事务支持:
- ACID特性:InnoDB支持ACID(Atomicity, Consistency, Isolation, Durability)事务模型,确保数据的完整性和可靠性。
- 事务隔离级别:支持多种事务隔离级别,包括READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ(默认)和SERIALIZABLE。
(2)行级锁:
- 高并发:InnoDB使用行级锁(而不是表级锁),提高并发性能,允许多个事务同时对不同的行进行操作。
- 锁升级:InnoDB动态管理锁的粒度,只有在必要时才升级为表级锁。
(3)外键支持:
- 数据完整性:支持外键约束,确保引用完整性,避免数据的不一致。
- 级联操作:支持级联删除和级联更新
MySQL体系结构: