存储引擎是什么
首先,存储引擎是所有关系型数据库中都非常重要的一个概念,它决定了数据在磁盘或其他存储介质中如何存储,如何组织,如何读取,如何检索。不同的存储引擎所支持的特性和性能都不相同!
MySQL 8常用的存储引擎
| 存储引擎 | 支持事务 | 支持 ACID 兼容 | 锁类型 | 检索方式 |
|---|---|---|---|---|
| InnoDB | √ | √ | 行锁 | B+树 |
| MyISAM | × | × | 表锁 | B+树 |
| Aria | √ | √ | 表锁 | B+树 |
| FEDERATED | × | × | 表锁 | 无 |
| CSV | × | × | 表锁 | 哈希表 |
| MEMORY | × | × | 表锁 | 哈希表 |
- 检索方式性能说明:
性能排序:哈希表 > B+树 > B树
但是,需要需要注意的是,哈希表只能等值查询不支持范围查询和排序操作,而B+树则是一个相对权衡后的选择
- 怎么选择存储引擎
InnoDB适合需要进行提交、回滚、崩溃恢复的业务场景
MyISAM适合只需要提供插入和查询的业务场景(如日志)
MEMORY适合数据量少量数据且需要快速查询的业务场景
- 怎么查看目前MySQL环境中支持哪些存储引擎
mysql> show engines;