美文网首页
InnoDB和MyISAM区别和联系

InnoDB和MyISAM区别和联系

作者: Medicine_8d60 | 来源:发表于2021-01-29 18:48 被阅读0次

    1)InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。
    2)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用
    3)InnoDB支持外键,MyISAM不支持
    4)从MySQL5.5.5以后,InnoDB是默认引擎
    5)InnoDB不支持FULLTEXT类型的索引
    6)InnoDB中不保存表的行数,如select count() from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count()语句包含where条件时MyISAM也需要扫描整个表
    7)对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引
    8)清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表
    9)InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like ‘%lee%’。 收起
    10)MySQL 5.6 之前版本,InnoDB 不支持全文索引,只能通过插件变相支持。但是在 5.6 及以后的版本,MyISAM 和 InnoDB存储引擎均支持全文索引。

    如何选择:1. 是否要支持事务,如果要请选择 InnoDB,如果不需要可以考虑 MyISAM;2. 如果表中绝大多数都只是读查询,可以考虑 MyISAM,如果既有读写也挺频繁,请使用InnoDB。3. 系统奔溃后,MyISAM恢复起来更困难,能否接受,不能接受就选 InnoDB; 4. MySQL5.5版本开始Innodb已经成为Mysql的默认引擎(之前是MyISAM),说明其优势是有目共睹的。如果你不知道用什么存储引擎,那就用InnoDB,至少不会差。

    相关文章

      网友评论

          本文标题:InnoDB和MyISAM区别和联系

          本文链接:https://www.haomeiwen.com/subject/wzhctltx.html