美文网首页
面试经典问题 InnoDB和MyISAM区别

面试经典问题 InnoDB和MyISAM区别

作者: dongdog | 来源:发表于2020-05-13 12:28 被阅读0次

    相同点:

    1. 都是B+树的底层实现。

    2. WHERE条件都符合索引最左匹配原则。

    不同点:

    1. MyISAM的存储文件有三个,frm、MYD、MYI 文件;InnoDB的存储文件就两个,frm、ibd文件。总文件大小InnoDB引擎占用空间更小。

    2. InnoDB的存储文件本身就是索引构成,建立新索引的时间比MyISAM快。

    3. MyISAM比InnoDB查询速度快,插入速度也快。

    4. 主键区间查询,InnoDB查询更快。字符串区间查询,MyISAM相对更快。

    5. 有A、AB、ABC索引的情况下,A OR B 查询,InnoDB查询性能比MyISAM慢。不建议使用OR 条件进行查询。

    6. InnoDB表没有命中到 A、B、C 索引最左原则时,BC组合查询命中了索引,但还是完全扫描,比全表扫描快些。MyISAM是全表扫描。

    软件层面的优化一是合理加索引;二是优化执行慢的sql。
    此二者相辅相成,缺一不可,如果加了索引,还是查询很慢,这时候就要考虑是sql的问题了,优化sql。
    实际生产中的sql往往比较复杂,如果数据量过了百万,加了索引后效果还是不理想,使用集群、垂直或水平拆分。

    相关文章

      网友评论

          本文标题:面试经典问题 InnoDB和MyISAM区别

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