看你的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使用独立表空间
特性
- Innodb是一种事务性存储引擎
- 完全支持事务得ACID特性
- Redo Log(数据恢复) 和 Undo Log(事务回滚)
- Innodb支持行级锁(并发程度更高)
适用场景
Innodb适合于大多数OLTP应用
CSV存储引擎
组成
- 数据以文本方式存储在文件
- .csv文件存储内容
- .csm文件存储表得元数据如表状态和数据量
- .frm 表结构
Archive
组成:
- 以zlib对表数据进行压缩,磁盘I/O更少
- 数据存储在ARZ为后缀的文件中
特点:
- 只支持insert和select操作
- 只允许在自增ID列上加索引
Memory
- 文件系统存储特点
也称HEAP存储引擎,所以数据保存在内存中 - 支持HASH索引和BTree索引
- 所有字段都是固定长度 varchar(10) = char(10)
- 不支持Blog和Text等大字段
- Memory存储引擎使用表级锁
- 最大大小由max_heap_table_size参数决定
Ferderated
特点
- 提供了访问远程MySQL服务器上表的方法
- 本地不存储数据,数据全部放到远程服务器上
- 本地需要保存表结构和远程服务器的连接信息
使用场景
偶尔的统计分析及手工查询
本文深入解析MySQL中的多种存储引擎,包括MyISAM、InnoDB、CSV、Archive和Memory的特点及适用场景。重点介绍InnoDB作为事务性存储引擎的特性,如支持事务的ACID特性、行级锁和RedoLog、UndoLog机制。同时,对比系统表空间和独立表空间的优劣,推荐使用独立表空间以提高IO效率。

1351

被折叠的 条评论
为什么被折叠?



