存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。
特性 | MyISAM | InnoDB | MEMORY |
事务安全 | 不支持 | 支持 | 不支持 |
锁机制 | 表锁 | 表锁/行锁 | 表锁 |
外键 | 不支持 | 支持 | 不支持 |
在mysql中提供了很多的存储引擎,比较常见有InnoDB、MyISAM、Memory
- InnoDB存储引擎是5.5之后是默认的引擎,它支持事务、外键、表级锁和行级锁
- MyISAM是早期的引擎,它不支持事务、只有表级锁、也没有外键,用的不多
- Memory主要把数据存储在内存,支持表级锁,没有外键和事务,用的也不多
InnoDB的介绍
- 介绍
InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的 MySQL 存储引擎。
- 特点
- DML操作遵循ACID模型,支持事务
- 行级锁,提高并发访问性能
- 支持外键 FOREIGN KEY约束,保证数据的完整性和正确性
- 文件
- ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。
- frm 存储表结构(MySQL8.0时,合并在表名.ibd中)

Comments 1 条评论
补充ACID模型是数据库管理系统的四项基本特性,旨在确保事务处理的安全性和可靠性。ACID是四个英文单词首字母的缩写,代表了原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。下面是这四个特性的简要介绍:
原子性(Atomicity):
原子性确保事务是一个不可分割的工作单元,事务中的所有操作要么全部完成,要么完全不执行。如果事务的一部分失败,整个事务将被回滚至开始状态,就像事务从未发生过一样。
一致性(Consistency):
一致性确保事务将数据库从一个合法状态转换到另一个合法状态,维护数据库的完整性。这意味着事务执行前后,数据库必须满足所有预定义的完整性约束,如外键约束、唯一性约束等。
隔离性(Isolation):
隔离性保证了事务并发执行时的结果与这些事务按照某种顺序串行执行的结果相同。事务之间不应该互相干扰,即一个事务的执行不应受到其他并发事务的影响。不同的隔离级别(如读未提交、读已提交、可重复读和序列化)提供了不同程度的隔离效果。
持久性(Durability):
持久性确保一旦事务提交,其对数据库的更改就是永久的,即使系统发生故障也不会丢失这些更改。为了实现持久性,数据库通常会使用日志记录等方式确保数据能够可靠地保存下来。
ACID模型是关系型数据库系统(如MySQL的InnoDB存储引擎、PostgreSQL等)的核心特性之一,通过这些特性保证了数据操作的可靠性,特别是在并发环境和系统故障的情况下