Innodb,Myisam都是Mysql数据库存储的引擎,Innodb支持事务等数据库高级特性,Myisam不支持,但比较快速。
linux
ISAM 是一个定义明确且历经时间考验的数据表格管理方法,它在设计时就考虑到数据库被查询的次数要远远高于更新的次数。所以,ISAM执行读取操做的速度很快,并且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不可以容错;若是你的硬盘崩溃了,那么数据文件就没法恢复了。若是你正在把ISAM用在关键任务应用程序里,那就必须常常备份你全部的实时数据,经过其复制特性,MySQL可以支持这样的复制备份应用程序sql
InnoDB 它提供了事务控制能力功能,它确保一组命令所有执行成功。或者当任何一条命令出现错误时全部命令的结果都被回退,能够想象在电子银行中事务控制能力是很是重要的。支持COMMIT,ROLLBACK和其余事务特性。最新版本的MySQL已经计划移除对DBD的支持,权利发展InnoDB数据库
MyISAM是ISAM表的新版本,进行了以下扩展:windows
二进制层次的可移植性,NULL列索引,对变长行比ISAM表有更少的碎片。支持大文件,更好的索引压缩,更好的键吗统计分布,更好和更快的Auto_increment处理性能
区别以下:操作系统
InnoDB不支持FULLTEXT类型的索引。设计
InnoDB不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,可是Myisam只要简单的读出保存好的行数便可。须要注意的是,若是select语句后面包含了where条件,则两种表的操做是同样的。索引
对于auto_increment类型的字段,InnoDB中必须包含只有该字段的索引,可是在Myisam中,能够和其余字段一块儿创建联合索引。事务
DELETE from table时,InnoDB不会从新创建表。内存
LOAD TABLE FROM MASTER 操做对InnoDB是不起做用的,解决方法是首先把InnoDB表改为Myisam表,到入数据后再改为InnoDB表,可是对于使用的额外的InnoDB特性的表来讲不适用,另外InnoDB的行锁也不是绝对的,若是在执行了一个SQL语句时MySQL不能肯定要扫描的范围,InnoDB一样会锁全表
MySQL aminstractor建数据库的时候,表缺省是InnoDB类型
InnoDB,Myisam两种类型:Myisam不支持事务处理高级特性,而InnoDB支持;Myisam类型的表强调的是性能,其执行速度比InnoDB类型的更快
Myisam类型的二进制数据文件能够在不一样的操做系统中迁移,也就是能够直接从windows系统拷贝到linux系统中使用
修改表的引擎类型:ALTER TABLE tablename ENGINE = MYISAM;