存储引擎

1、MyISAM

1. 特色:

Mysql5.5版本以前的默认存储引擎sql

数据表文件组成:表名.frm .MYD .MYI
frm 描述表结构 MYD保存表数据 MYI存储表索引缓存

2. 特性:

并发性与锁级别-表级锁;并发

支持全文检索函数

支持数据压缩高并发

3. 使用场景:

非事务性应用(数据仓库,报表,日志数据);性能

只读类应用;日志

空间类应用(空间函数,坐标);blog

2、Innodb

1. 特色:

Mysql 5.5 以及之后版本默认的存储引擎;索引

2. 表空间描述:

SHOW VARIABLES LIKE '%innodb_file_per_table%';事务

ON:独立表空间(包含文件.frm + .ibd);

OFF:系统表空间 (ibdataX);

3. 表空间对比:

  • 系统表空间没法简单的收缩文件大小
  • 独立表空间能够经过optimize table 收缩系统文件
  • 系统表空间会产生IO瓶颈
  • 独立表空间能够同时向多个文件刷新数据

4. 特性:

  • InnoDB 是一个事务性存储引擎
  • 彻底支持事物的ACID
  • Redo Log 和 Undo Log
  • Innodb 支持行级锁(并发程度更高)

3、二者之间的对比

对比项
MyISAM 
InnoDB
主外键
不支持 支持
事物 不支持 支持
行级锁 表锁,即操做一条记录,也会锁住整个表;不适合高并发操做

行锁,也支持表级锁,行锁的只是锁住某一行,不对其余行形成影响;

适合高并发操做

缓存 只是缓存索引,不缓存真是数据
不只缓存索引还要缓存真
实数据,对内存要求较高,
并且内存大小对性能有决
定性的影响
表空间
关注点 性能 事物
默认安装 Y 5.5版本以前 Y 5.5 版本即之后的版本
相关文章
相关标签/搜索