MySQL表的各种类型

一、常用类型

存储引擎 事务 锁颗粒 主要应用 忌用
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语句的内容永远是空
posted @ 2020-09-05 17:05  houxin  阅读(221)  评论(0编辑  收藏  举报