MySQL存储引擎简介

简介

MySQL存储引擎负责数据的存储和读取,每个存储引擎都有自己的特点,MySQL 服务器通过API与存储引擎进行通信。
在这里插入图片描述
MySQL体系结构中,支持了很多存储引擎:InnoDB,MyISAM,Memory,NDB Cluster等

InnoDB

  • 支持事务,行锁,外键
  • 使用多版本并发控制(MVCC)来获得高并发
  • 实现了4种隔离级别,默认为 Repeatable 级别。
  • 使用一种被称为 next-key locking 的策略来避免幻读现象的产生。
  • 高性能和高可用功能:插入缓冲、二次写、自适应哈希索引、预读
  • 采用了聚集的方式,因此每张表的存储都是按主键的顺序进行存放的。

MyISAM

  • 不支持事务、表锁设计;
  • 支持全文索引。
  • 只缓存索引文件,而不缓存数据文件;
  • 存储引擎由 MYD 和 MYI 组成,MYD 用来存放数据文件,MYI 用来存放索引文件。

NDB

  • NDB 存储引擎是一个集群存储引擎
  • 特点是数据全部放在内存中,因此主键查找的速度极快
    -通过添加NDB数据存储节点可以线性地提高数据库性能,是高性能、高可用的集群系统。

Memory

  • Memory存储引擎将表中的数据存放在内存中,如果数据库重启或发生崩溃,表中的数据都将丢失。
  • 适合用于存储临时数据的临时表,以及数据仓库中的纬度表。
  • 默认使用哈希索引
  • 缺点:只支持表锁,并发性能差,不支持 Text 和 Blob 列类型。

Archive

  • 只支持 INSERT 和 SELECT 操作,使用zlib算法将数据行进行压缩后存储,压缩比例一般可达1:10,
  • 使用行锁来实现高并发的插入。
  • 使用场景:适合存储归档数据(例如:日志信息)

总结

不同存储引擎特性如下:

功能MyISAMMemoryInnoDBArchiveNDB
存储限制256TBRAM64TB无限制有限制
事务支持
锁粒度表锁表锁行锁行锁行锁
MVCC支持支持
B+树索引支持支持支持支持
哈希索引支持内部将哈希索引应用于自适应哈希索引功能
全文索引支持支持
外键支持
地理空间数据类型支持支持
聚集索引支持
数据缓存N/A支持支持
索引缓存支持N/A支持支持
数据压缩支持支持
集群数据库支持
复制支持支持支持支持支持
备份与恢复支持支持支持支持支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值