存储引擎是MySQL的核心组件,是存储数据、建立索引、更新/查询数据等技术的实现方式,存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。以在创建表的时候,来可以指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。MySQL 支持多种存储引擎,每种引擎都有其特定的功能和性能特点。
以下是 MySQL 常见的几种存储引擎:
1. InnoDB:
InnoDB 是 MySQL 5.5之后的默认存储引擎,支持事务安全和行级锁定,具有高并发性和稳定性,在高并发读写场景下表现优异,适合大型数据量和高并发环境。
2. MyISAM:
早期默认的存储引擎MyISAM 适合于只读或者读比写频繁的应用,不支持事务和外键,支持表锁不支持行锁,但是在插入和查询处理速度比 InnoDB 更快,占用空间较小。
3. Memory:
Memory 存储引擎是基于内存的,数据存储在 RAM 中,适用于一些临时表、缓存表等,可以快速地访问数据,但不支持持久性存储,也不支持事务。
4. Archive:
Archive 存储引擎适合于大数据分析和存储,它采用高压缩比的算法来存储数据,在 INSERT 和 SELECT 处理方面比 MyISAM 更高效。
5. NDB:
NDB 存储引擎(也称为 MySQL Cluster)是一个用于 MySQL 集群环境下的存储引擎,支持分布式计算和高可用性。
查询当前数据库支持的存储引擎:
show engines;
创建表时指定存储引擎:
create table user(
xxx,
xxx
) engine = MyISAM ;
常用的3种存储引擎区别:
InnoDB和MyISAM的区别:
1.事务支持
InnoDB 支持事务 ACID 属性,也就是 Atomicity、Consistency、Isolation 和 Durability,可以保证事务的完整性。而 MyISAM 不支持事务,因此对于事务处理要求高的应用场景,建议使用 InnoDB。
2.锁机制
InnoDB 的并发处理能力相对较强,支持行级锁,能够更好地支持高并发的读写操作。MyISAM 只支持表级锁,对于大量并发访问的情况可能会出现锁等待、死锁等问题。
3.外键约束
InnoDB 支持外键约束,可以保证数据的完整性和一致性。而 MyISAM 不支持外键约束。