一、常用类型
存储引擎 | 事务 | 锁颗粒 | 主要应用 | 忌用 |
---|---|---|---|---|
MYISAM | 不支持 | 支持并发插入的表级锁 | SELECT,INSERT | 读写操作频繁 |
MRG_MYISAM | 不支持 | 支持并发插入的表级锁 | 分段归档,数据仓库 | 全局查找过多的场景 |
Innodb | 支持 | 支持MVCC的行级锁 | 事务处理 | 无 |
Archive | 不支持 | 行级锁 | 日志记录,只支持insert,select | 需要随机,更新,删除 |
Ndb cluster | 支持 | 行级锁 | 高可用性 | 大部分应用 |
二、特殊类型
存储引擎 | 事务 | 锁颗粒 | 主要应用 | 忌用 |
---|---|---|---|---|
CSV | 不支持 | 支持并发插入的表级锁 | 适合做为数据交换的中间表 | 索引查询 |
BLACKHOLE | 支持所有 | 支持所有 | 用于记录binlog做复制的中继存储 | 存储数据 |
MEMORY | 不支持 | 支持并发插入的表级锁 | 数据量小、访问频繁的不重要的数据 | 数据量过大,永久存储 |
对这些常用的类型,做简单说明。
1、CSV类型
- 优点:
以CSV格式进行数据存储(逗号隔开,引号)
可以对数据文件直接编辑(保存文本文件内容) - 缺点:
所有的列必须都是不能为NULL的
不支持索引(不适合大表,不适合在线处理)
2、MEMORY类型
- 优点:
使用内存当存储介质,优点式响应速度快 - 缺点:
进程崩溃的时数据会丢失
要求存储的是长度不变的数据
3、BLACKHOLE类型
- 优点
BLACKHOLE支持所有类型的索引
记录binlog做复制的中继存储 - 缺点
BLACKHOLE 表不存储数据,任何写入到此引擎的数据均会被丢弃掉, 不做实际存储
Insert触发器可以正常使用,Update、Delete触发器因为不存储数据不能触发
Select语句的内容永远是空