展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

存储引擎分类

MyISAM 引擎

  • 主要的非事务处理存储引擎
1、MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM 不支持事务、行级锁、外键,
有一个毫无疑问的缺陷就是 崩溃后无法安全恢复 。
2、mysql5.5之前默认的存储引擎
3、优势是访问的速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用
4、针对数据统计有额外的常数存储。故而 count(*) 的查询效率很高
5、数据文件结构:
      表名.frm 存储表结构
      表名.MYD 存储数据 (MYData)
      表名.MYI 存储索引 (MYIndex)
6、应用场景:只读应用或者以读为主的业务

Archive 引擎

  • 用于数据存档

Blackhole 引擎

  • 丢弃写操作,读操作会返回空内容

CSV 引擎

  • 存储数据时,以逗号分隔各个数据项
创建CSV表还会创建相应的 元文件 ,用于 存储表的状态 和 表中存在的行数 。此文件的名称与表的名称相同,后缀为 CSM

Memory 引擎:

  • 置于内存的表
Memory采用的逻辑介质是 内存 , 响应速度很快 ,但是当mysqld守护进程崩溃的时候 数据会丢失。
另外,要求存储的数据是数据长度不变的格式,比如,Blob和Text类型的数据不可用(长度不固定的)

1、Memory同时 支持哈希(HASH)索引 和 B+树索引 。
2、Memory表至少比MyISAM表要 快一个数量级 。
3、MEMORY 表的大小是受到限制 的。表的大小主要取决于两个参数,分别是 max_rows 和max_heap_table_size。
其中,max_rows可以在创建表时指定;max_heap_table_size的大小默认为16MB,可以按需要进行扩大。
4、数据文件与索引文件分开存储。
5、缺点:其数据易丢失,生命周期短。基于这个缺陷,选择MEMORY存储引擎时需要特别小心。
  • Memory存储引擎使用场景
1. 目标数据比较小 ,而且非常 频繁的进行访问 ,在内存中存放数据,如果太大的数据会造成 内存溢出。
可以通过参数 max_heap_table_size 控制Memory表的大小,限制Memory表的最大的大小。
2. 如果 数据是临时的 ,而且 必须立即可用 得到,那么就可以放在内存中。
3. 存储在Memory表中的数据如果突然间 丢失的话也没有太大的关系 。

Federated 引擎

  • 访问远程表
Federated引擎是访问其他MySQL服务器的一个代理,尽管该引擎看起来提供了一种很好的 跨服务器的灵活性,但也经常带来问题,因此默认是禁用的 

Merge引擎

  • 管理多个MyISAM表构成的表集合

NDB引擎

  • MySQL集群专用存储引擎
也叫做 NDB Cluster 存储引擎,主要用于 MySQL Cluster 分布式集群 环境,类似于 Oracle 的 RAC 集群

存储引擎对比

MyISAM和InnoDB对比

posted @ 2022-06-08 13:11  DogLeftover  阅读(38)  评论(0编辑  收藏  举报