您的位置:首页 > 其它

MyISAM和InnoDB区别

2016-12-06 17:47 176 查看
今天创建表结构的时候,发现项目中含有InnoDB和MyISAM类型的表,现总结两个引擎的差别如下。

1、MyISAM不支持事务,InnoDB支持事务处理。

2、MyISAM锁为全表锁,InnoDB支持行级锁,但是InnoDB的行级锁并不是绝对的,当SQL语句不能确定搜索的范围时(UPDATE `user_info` SET `user_desc` = '用户简介' WHERE `user_name` LIKE '%明%')同样会锁住全表。

3、InnoDB中不保存表数据的行数,MyISAM保存表数据的行数,所以SELECT COUNT(*) FROM `table_name`时MyISAM只要读出保存的行数即可,而InnoDB需要扫描一遍整个表。

4、MyISAM把数据保存成文件的形式,方便数据转移。

5、对于AUTO_INCREMENT类型的字段,InnoDB必须包含只有该字段的索引,但在MyISAM表中可以建立联合索引。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: