MySQL架构学习——存储引擎

37 篇文章 2 订阅

MySQL架构学习——存储引擎


MyISAM

存储引擎表由MYD和MYI组成

特性

  • 并发锁与锁级别
  • 表损坏修复(check table 表名  repair table 表名)
  • 支持索引类型
  • 支持数据压缩(命令行 mysiampack -b (-f强制压缩) 表名)

限制

  • 版本5.0之前默认表大小为4G

适用场景

  • 非事务型应用
  • 只读类应用
  • 空间类应用

Innodb

Innodb使用表空间进行数据存储

innodb_file_per_table

ON:独立表空间:表名.ibd

OFF:系统表空间:ibdataX

系统表空间和独立表空间的对比

系统表空间无法简单的收缩文件大小

独立表空间可以通过optimize table命令收缩系统文件

系统表空间会产生IO瓶颈

独立表空间可以向多个文件刷新数据

一般Innodb使用独立表空间

特性

  • 是一种事务性存储引擎
  • 完全支持事务的ACID特性
  • Redo LOG (同步日志,实现事务的持久性,有内存缓存和重做日志文件组成,顺序存储)和 Undo Log(回滚日志,记载未提交事务,随机IO)
  • 支持行级锁,行级锁可以支持最大程度的并发,有存储引擎层实现

适用引擎

  • 适合于大多数OLTP(联机事务处理)应用

阻塞和死锁

阻塞确保事务的并发可以正常的执行,大量的阻塞会导致性能下降

死锁双方互相等待对方所占有的资源


CSV

文件系统存储特点

  • 数据以文本方式存储在文件中
  • CSV文件存储表内容
  • CSM文件存储表的元数据如表状态和数据量
  • frm文件存储表结构信息

特点

  • 以CSV格式进行数据存储
  • 所有列必须都是不能为NULL
  • 不支持索引
  • 可以对数据文件直接编辑

不适合大表,不适合在线处理

适用场景

适合作为数据交换的中间表


Archive

文件系统存储特点

  • 以zlib对表数据进行压缩,磁盘I/O更少
  • 数据存储在ARZ为后缀的文件中
  • 以frm文件存储表的结构信息

特点

  • 只支持insert和select操作
  • 只允许在自增ID列上加索引
  • 存储空间占用小

使用场景

  • 日志和数据采集类应用(不需要修改的)

Memory

文件系统存储特点

  • 也称为HEAP存储引擎,数据保存在内存中

特点

  • 支持HASH索引(等值查找时用,默认)和BTree索引(范围查找时用)
  • 所有字段都为固定长度
  • 不支持BLOG和TEXT等大字段
  • 使用表级锁
  • 表的最大大小有max_heap_size参数决定

使用场景

  • 用于查找或者是映射表
  • 用于保存数据分析中产生的中间表
  • 用于缓存周期性聚合数据的结果表

Fedrated

特点

  • 提供了访问远程MYSQL服务器上表的方法
  • 本地不存储数据,数据全部放在远程服务器上
  • 本地需要保存表结构和远程服务器的连接信息

使用场景

  • 偶尔的统计与分析查询

存储引擎的选择

参考条件

  • 事务
  • 备份
  • 崩溃恢复
  • 存储引擎的特有特性

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值