InnoDB与MyISAM异同
1.事务
Myisam不支持事务处理,InnoDB支持
2.锁类型
Myisam表锁,InnoDB行级锁,但在执行一条SQL时,如果无法确定扫描范围,否则InnoDB行锁升级成表锁
3.数据存储方式
Myisam 3个文件*.frm,*.MYD,*.MYI,InnoDB 表空间存放数据和索引文件(抑或每张表独立使用自己的表空间)
4.缓存机制
Myisam采用key缓存,数据文件可以再OS中缓存,InnoDB数据和索引文件一起缓存在Innodb_buffer_pool中
5.业务类型
myisam执行大量select,好的选择;InnoDB执行大量insert 或 update 性能考虑,应使用InnoDB表
6.表的行数
select count(*) from tbl Myisam读取保存好的行数;InnoDB需要遍历表中有多少行;若有where条件,表的操作是一样的
7.Auto_Increment操作
表auto_increment列内部处理,Myisam为insert和update操作更新这一列,使得auto_increment列更快,在序列项的值被删除
之后就不能再利用,(当auto_increment列被定义为多列索引的最后一列,可以出现重使用序列顶部删除的值),对auto_incre
ment类型字段,Innodb必须只包含该字段的索引,但myisam中,可以和其他字段一起建立组合索引
重启mysqld,delete InnoDB表 auto_increment 自起始值insert,myisam表 递增序列参入表中
1.事务
Myisam不支持事务处理,InnoDB支持
2.锁类型
Myisam表锁,InnoDB行级锁,但在执行一条SQL时,如果无法确定扫描范围,否则InnoDB行锁升级成表锁
3.数据存储方式
Myisam 3个文件*.frm,*.MYD,*.MYI,InnoDB 表空间存放数据和索引文件(抑或每张表独立使用自己的表空间)
4.缓存机制
Myisam采用key缓存,数据文件可以再OS中缓存,InnoDB数据和索引文件一起缓存在Innodb_buffer_pool中
5.业务类型
myisam执行大量select,好的选择;InnoDB执行大量insert 或 update 性能考虑,应使用InnoDB表
6.表的行数
select count(*) from tbl Myisam读取保存好的行数;InnoDB需要遍历表中有多少行;若有where条件,表的操作是一样的
7.Auto_Increment操作
表auto_increment列内部处理,Myisam为insert和update操作更新这一列,使得auto_increment列更快,在序列项的值被删除
之后就不能再利用,(当auto_increment列被定义为多列索引的最后一列,可以出现重使用序列顶部删除的值),对auto_incre
ment类型字段,Innodb必须只包含该字段的索引,但myisam中,可以和其他字段一起建立组合索引
重启mysqld,delete InnoDB表 auto_increment 自起始值insert,myisam表 递增序列参入表中
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26855487/viewspace-764853/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26855487/viewspace-764853/