概述
存储引擎就是存储数据、建立索引、更新或查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称作表类型。
在创建表时指定存储引擎:
create table 表名(
...
)engine = 引擎名;
MySQL 默认的存储引擎是 InnoDB,不写后面那句话默认 InnoDB。
查看当前数据库支持的存储引擎:
show engines;
查看结果:
常用的存储引擎只有 Memory、MyISAM 和 InnoDB。
InnoDB
介绍:
InnoDB 是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后就是默认的引擎。
特点:
- 事务:DML 操作遵循 ACID 模型,支持事务。
- 行级锁:提高并发访问性能。
- 外键:支持外键约束,保证数据的完整性和正确性。
文件:
xxx.idb:xxx 表示表名,InnoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构、数据和索引。
MyISAM
介绍:
MyISAM 是 MySQL 早期的默认存储引擎。
特点:
- 不支持事务,不支持外键。
- 支持表锁,不支持行锁。
- 访问速度快。
文件:
- xxx.sdi:存储表结构信息。
- xxx.MYD:存储数据。
- xxx.MYI:存储索引。
Memory
介绍:
Memory 引擎的表数据是存储在内存中的,由于受到硬件问题或断电问题的影响,只能将这些表作为临时表或缓存使用。
特点:
- 内存存放
- hash索引(默认)
文件:
xxx.sdi:存储表结构信息。
三种引擎的区别
本文整理自:黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括_哔哩哔哩_bilibili