myIsAM
并发性和锁级别,myIsAM是表级锁而不是行级锁,修改时需要对整个表进行加锁,读取时加共享锁。读写混合性并不是太好。
支持检查修复,但并不是事务恢复,它不是事务型存储引擎。
check table tablename 检查 repair table tablename 恢复
create table myIsam(id int,c1 varchar(10))engine=myisam; 创建一个myisam 存储引擎的表。
myIsAM表支持索引类型
myIsAM表支持数据压缩
压缩命令 :myisampack -b -f myisam.MYI
myisam.OLD 压缩前的备份文件
压缩后的表是只可以读的,不可以写操作。
适用场景:非事务型应用,只读类应用
Innodb
innodb使用表空间进行存储 innodb_file_per_table = ON :独立表空间 OFF:系统表空间。
ON 新建表会生成独立的 .ibd文件 OFF:ibdataX
show variables like 'innodb_file_per_table'; 查看innodb_file_per_table参数值。
独立表空间和系统表空间的比较:
1 系统表空间无法简单的收缩文件大小
2 独立表空间可以通过optimize table 命令收缩系统文件
3 系统表空间会产生IO瓶颈
4 独立表空间可以同时向多个文件刷新数据
5.6 版本后 独立空间成为默认的配置
表转移的步骤:
把原来在系统表空间的表转移到独立表空间的方法
1 使用mysqldump 导出所有数据库表数据
2 停止mysql 服务 , 修改参数,并删除innodb相关文件
3 重启mysql 服务,重建innodb系统表空间
4 重新导入数据