MYSQL-存储引擎

本文深入解析MySQL中的多种存储引擎,包括MyISAM、InnoDB、CSV、Archive和Memory的特点及适用场景。重点介绍InnoDB作为事务性存储引擎的特性,如支持事务的ACID特性、行级锁和RedoLog、UndoLog机制。同时,对比系统表空间和独立表空间的优劣,推荐使用独立表空间以提高IO效率。

看你的mysql现在已提供什么存储引擎:

mysql> show engines;

看你的mysql当前默认的存储引擎:

mysql> show variables like '%storage_engine%';

MyISAM

MySql 5.5之前默认的存储引擎
MyISAM 存储引擎由MYD和MYI组成
在这里插入图片描述
MyISAM 表压缩是只读的

Innodb

MySql 5.5以及以后版本默认存储引擎
系统表空间和独立表空间
系统表空间无法简单的收缩文件大小
独立表空间可以通过optimize table 收缩系统文件
系统表空间会产生IO瓶颈
独立表空间可以同时向多个文件刷新数据
建议:Innodb使用独立表空间

特性

  1. Innodb是一种事务性存储引擎
  2. 完全支持事务得ACID特性
  3. Redo Log(数据恢复) 和 Undo Log(事务回滚)
  4. Innodb支持行级锁(并发程度更高)

适用场景
Innodb适合于大多数OLTP应用

CSV存储引擎

组成

  1. 数据以文本方式存储在文件
  2. .csv文件存储内容
  3. .csm文件存储表得元数据如表状态和数据量
  4. .frm 表结构

Archive

组成:

  1. 以zlib对表数据进行压缩,磁盘I/O更少
  2. 数据存储在ARZ为后缀的文件中

特点:

  1. 只支持insert和select操作
  2. 只允许在自增ID列上加索引

Memory

  1. 文件系统存储特点
    也称HEAP存储引擎,所以数据保存在内存中
  2. 支持HASH索引和BTree索引
  3. 所有字段都是固定长度 varchar(10) = char(10)
  4. 不支持Blog和Text等大字段
  5. Memory存储引擎使用表级锁
  6. 最大大小由max_heap_table_size参数决定

Ferderated

特点

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

使用场景
偶尔的统计分析及手工查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值