• MyIsAm和 InnoDB 的 区别? 如何去选择?


    区别:

      1.InnoDB支持事务,MyISAM不支持事务,InnoDB会为每条语句默认封装成事务支持,当多条语句执行时,可以放到 begin和commit中,进行执行;

      2.InnoDB支持外键,MyISAM不支持外键;

      3.InnoDB是聚焦索引,而MyISAM是非聚焦索引,但是它们都是B+ tree 数据结构

        不同的是,InnoDB中必须要有主键,数据文件和索引绑定在一起,通过主键索引查询数据,极大的提升了查询效率.而辅助索引则需要2次查询,首先查询到主键索引后,再查询数据

        而MyISAM中则是,数据结构和索引是分开的,索引保持的是数据文件的指针.

      4.InnoDB不保存表的具体行数,所以需要去进行全表扫描,而MyISAM是使用一个变量去保存的,所以读取的时候会非常快.

      5.InnoDB不支持全文索引,而MyISAM支持全文检索,在涉及全文索引领域上MyISAM,效率更高.PS:Mysql5.7以后支持全文索引

      6.MyISAM支持压缩表.

      7.InnoDB支持表、行(默认)级锁,而MyISAM支持表锁

        InnoDB的行锁是实现在索引上的,而不是锁在物理行记录上. 如果没有命中索引的话,也会退化成表锁

      8.InnoDB表必须有唯一索引(如主键)(用户没有指定的话会自己找/生产一个隐藏Row_Id来充当默认主键),而MyIsAM则没有

      9.InnoDB存储文件有frm、ibd,而MyISAM是frm、MYD、MYI.

    如何选择:

      1.是否要支持事务,如果要请选择InnoDB,如果不需要可以使用MyISAM.

      2.如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读也有写,使用InnoDB

      3.系统崩溃后,MyISAM恢复起来更困难,是否接受;

      4.MySQL5.5版本开始InnoDB已经成为MySQL的默认引擎(之前是MyISAM).

        如果你不知道如何选择,选择InnoDB

  • 相关阅读:
    探讨GTK+应用程序的优化方法
    X Window研究笔记(9)
    X Window研究笔记(10)
    X Window研究笔记(7)
    用gdbserver调试共享库(改进版)
    X Window研究笔记(11)
    Gtkminimo中的几个BUG
    编译基于DirectFB的Phoneme(Advance)
    X Window研究笔记(8)
    X Window研究笔记(12)
  • 原文地址:https://www.cnblogs.com/zayr/p/14335057.html
Copyright © 2020-2023  润新知