查看MySQL已提供的存储引擎
mysql> show engines;
查看MySQL当前默认存储引擎
mysql> show variables like '%storge_engine%';
MyISAM
MySQL5.5之前
的默认存储引擎
【特性】:
- 并发性与锁级别-表级锁
- 支持全文检索
- 支持数据压缩
【使用场景】:
- 非事务性应用(数据仓库、报表、日志数据)
- 只读类应用
- 空间类应用(空间函数、坐标)
InnoDB
MySQL5.5之后
的默认存储引擎
【特性】:
- InnoDB是支持事务的存储引擎
- 完全支持事务的ACID
- Redo Log和Undo Log
- InnoDB支持行级锁(并发程度更高)
【适用场景】:
- 适合于大多数OLTP应用
MyISAM和InnoDB的对比
CSV
【特性】:
- 以csv格式进行数据存储
- 所有列都不能为null
- 不支持索引(不适合大表、不适合在线处理)
- 可以对数据文件直接编辑
Archive
【特性】:
- 以zlib对表数据进行压缩,磁盘I/O更少,数据存在ARZ后缀的文件中
- 只支持insert和select操作
- 只允许在自增ID列加索引
【适用场景】:
- 日志和数据采集应用
Memory
【特性】:
- 也称Heap存储引擎,数据保存在内存中
- 支持HASH和BTree索引
- 所有字段都是固定长度(varchar(10)=char(10))
- 不支持Blog和Text等大字段
- 使用表级锁
【适用场景】: - hash索引用于查找或是映射表
- 用于保存数据分析中产生的中间表
- 用于缓存周期性聚合数据的结果表