前言
MYSQL有多种存储引擎,也就是数据最终存储在文件中要怎么存储,读写策略.myISAM是默认的存储引擎
myISAM
基于传统的ISAM类型, 支持全文检索, 但不是事务安全的, 而且不支持外键
InnoDB
事务引擎,支持回滚, 崩溃恢复能力,多版本并发控制,ACID事务,支持行级锁定
主要区别
- myISAM是非事务的, 而innoDB是事务安全的
- myISAM锁的粒度是表的级别,也就是锁定表,innoDB是行级别的锁定
- myISAM支持全文检索,innoDB不支持
- myISAM相对简单, 所以效率要优于innoDB
- myISAM表是保存成文件的形式, 跨平台迁移更方便
- innoDB比myISAM更安全,
应用场景
- myISAM提供高速的存储和检索, 以及全文搜索.如果要执行大量的select语句, 应该选择myISAM
- innoDB在执行大量insert或者update操作下更快和并发效果
命令
查看表的存储类型
1
2
3show create table tablename
show table status from dbname where name = tablename
mysqlshow -u user -p password --status dbname tablename修改表的引擎
1
alter table tablename type = InnoDB
启动mysql数据库命令中添加参数使新发布的表默认都使用事务
1
--default-table-type=InnoDB
临时改变默认表的类型
1
2set table_type = InnoDB
show variables like 'table_type'