查看mysql存储引擎
show engines;
查看当前mysql默认存储引擎
show variables like ‘%storage_engines%’;
MyIsam:
Mysql5.5以前默认存储引擎为MYISAM
结构:
MYISAM存储引擎由MYD和MYI组成
.frm存储了表结构,所有存储引擎都存在
.MYD 数据文件
.MYI 索引文件
特性:
并发性与锁级别-表锁
支持全文检索
支持数据压缩 myisampack -b -f xxx.MYI
适用场景:
非事务型应用(数据仓库、报表、日志数据)
只读类应用
空间类应用(空间函数、坐标)
Innodb:
Mysql5.5及以后默认存储引擎为Innodb
结构
Innodb表空间
innodb_fil_per_table
ON:独立表空间
OFF:系统表空间
查看表空间类型: show VARIABLES like ‘innodb_file_per_table’
设置表空间类型: set global innodb_file_per_table=off off:关闭 on:打开
独立表空间
.frm 表结构文件
.ibd 数据及索引文件
系统表空间
对应数据库目录下
数据根目录data 下
.frm 表结构文件
ibdataX 数据及索引文件
mysql5.6以前Innodb默认为系统表空间
系统表空间与独立空间对比:
系统表空间无法简单的收缩文件大小
独立表空间可以通过 optimize table 收缩文件系统 (OPTIMIZE TABLE 表名)
系统表空间会产生IO瓶颈
独立表空间可以同时向多个文件刷新数据。
建议Innodb使用独立表空间
特征:
Innodb是一种支持事务的存储引擎,完全支持事务的ACID特性,Innodb支持行级锁
适用场景:
Innodb适用大多数OLTP引用
MYISAM与INNODB对比
**
