美文网首页mysqlMysql
存储引擎MyISAM与Innodb区别

存储引擎MyISAM与Innodb区别

作者: Mr_Arvin | 来源:发表于2019-03-14 18:50 被阅读11次

    1、事务支持
    MyISAM不支持事务,而Innodb支持,InnoDB的AUTOCOMMIT默认是打开的.

    begin
      sql语句
    commit
    

    2、存储结构
    MyISAM:每个MyISAM在磁盘上存储成三个文件。
    InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。

    3、外键支持
    MyISAM不支持外键,而Innodb支持。

    4、 AUTO_INCREMENT
    MyISAM:可以和其他字段一起建立联合索引。引擎的自动增长列必须是索引,如果是组合索引,自动增长可以不是第一列,他可以根据前面几列进行排序后递增。
    InnoDB:InnoDB中必须包含只有该字段的索引。引擎的自动增长列必须是索引,如果是组合索引也必须是组合索引的第一列。

    5、表锁差异
    MyISAM只支持表级锁,Innodb支持事务和行级锁。

    6、全文索引
    MyISAM支持全文索引,Innodb不支持,但是可以用插件使之也支持全文索引。
    全文索引是指对char、varchar和text中的每个词(停用词除外)建立倒排序索引。

    MyISAM和InnoDB两者的应用场景:

    1. MyISAM管理非事务表,应用在不需要事务外键支持的情况下,需要执行大量的SELECT查询,可以选择。
    2. InnoDB用于事务处理应用程序,如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

    相关文章

      网友评论

        本文标题:存储引擎MyISAM与Innodb区别

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