SELECT、UPDATE、INSERT、Delete *** 作
如果执行大量的SELECT,MyISAM是更好的选择。
如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。
DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。而MyISAM则是重新建立表。在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。
auto_INCREMENT
MyISAM:可以和其他字段一起建立联合索引。引擎的自动增长列必须是索引,如果是组合索引,自动增长可以不是第一列,他可以根据前面几列进行排序后递增。
InnoDB:InnoDB中必须包含只有该字段的索引。引擎的自动增长列必须是索引,如果是组合索引也必须是组合索引的第一列
MyISAM:支持 FulLTEXT类型的全文索引。不支持中文。
InnoDB:不支持FulLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。
表锁差异MyISAM:只支持表级锁,只支持表级锁,用户在 *** 作myisam表时,select,update,delete,insert语句都会给表自动加锁。
InnoDB:支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发 *** 作的新能。但是InnoDB的行锁也不是绝对的,如果在执行一个SQL语句时MysqL不能确定要扫描的范围,InnoDB表同样会锁全表, 例如update table set num=1 where name like “%aaa%”
一般来说:
MyISAM适合:
InnoDB适合:
可靠性要求比较高,或者要求事务; 表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁。总结
以上是内存溢出为你收集整理的Mysql 中 myisam 与 innodb 的区别全部内容,希望文章能够帮你解决Mysql 中 myisam 与 innodb 的区别所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)