1-001:MySQL的存储引擎有哪些?它们之间有什么区别?
MySQL 存储引擎
├── InnoDB(默认引擎)
│ ├── 事务支持:支持 ACID 和事务(事务日志、回滚、崩溃恢复)
│ ├── 锁机制:支持行级锁,提高并发性能
│ ├── 外键支持:支持外键约束,保证数据一致性
│ ├── 适用场景:OLTP(高并发事务处理)、数据一致性要求高的系统
│ ├── 其他特点:使用 聚簇索引,自适应哈希索引,提高查询速度
│
├── MyISAM(老牌引擎)
│ ├── 事务支持:不支持事务
│ ├── 锁机制:表级锁,适用于读多写少的场景
│ ├── 外键支持:不支持外键
│ ├── 适用场景:日志系统、数据分析、全文索引(支持 FULLTEXT 索引)
│ ├── 其他特点:查询速度快,但并发写性能差,崩溃后可能导致数据丢失
│
├── Memory(内存存储引擎)
│ ├── 事务支持:不支持事务
│ ├── 锁机制:表级锁
│ ├── 外键支持:不支持外键
│ ├── 适用场景:临时表、缓存数据、会话管理
│ ├── 其他特点:数据存储在内存中,速度极快,但 MySQL 关闭后数据丢失
│
├── Archive(归档存储引擎)
│ ├── 事务支持:不支持事务
│ ├── 锁机制:只支持插入操作(不支持删除和索引)
│ ├── 外键支持:不支持外键
│ ├── 适用场景:日志存储、历史数据归档
│ ├── 其他特点:高效压缩存储数据,适合存储大量历史数据
│
├── NDB(Cluster 数据存储引擎)
│ ├── 事务支持:支持事务
│ ├── 锁机制:行级锁
│ ├── 外键支持:不支持外键
│ ├── 适用场景:高可用、高吞吐量的分布式存储(如电信系统)
│ ├── 其他特点:分布式集群架构,可扩展性强
│
├── CSV(文本存储引擎)
│ ├── 事务支持:不支持事务
│ ├── 锁机制:表级锁
│ ├── 外键支持:不支持外键
│ ├── 适用场景:数据交换、导出 CSV 文件
│ ├── 其他特点:每个表存储为一个 CSV 文件,数据可读性高
│
└── Federated(远程表存储引擎)
├── 事务支持:取决于远程数据库
├── 适用场景:跨服务器访问数据
├── 其他特点:本地数据库不存储数据,仅通过远程连接访问