• mysql进阶系列:mysql中MyISAM和InnoDB有什么区别


    mysql 版本5.7+

    本片文章详细列举下MyISAM和InnoDB的区别

    1. mysql中MyISAM和InnoDB有什么区别

    1. 存储结构

    MyISAM:每张表被存放在三个文件:frm-表格定义、MYD(MYData)-数据文件、MYI(MYIndex)-索引文件。

    Innodb:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。

    2. 存储空间

    MyISAM:MyISAM可被压缩,存储空间较小。

    Innodb:InnoDB的表需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

    3. 可移植性、备份及恢复

    MyISAM:由于MyISAM的数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进行操作。

    Innodb:免费的方案可以是拷贝数据文件、备份binlog,或者用mysqldump,在数据量达到几十G的时候就相对痛苦了。

    4. 文件格式

    MyISAM:数据和索引是分别存储的,数据(.MYD),索引(.MYI)。

    Innodb:数据和索引是集中存储的(.ibd)。

    5. 记录存储顺序

    MyISAM:按记录插入顺序保存。

    Innodb:按主键大小有序插入。

    6. 外键

    MyISAM:不支持。

    Innodb:支持。

    7. 事务

    MyISAM:不支持。

    Innodb:支持。

    8. 锁支持

    MyISAM:表级锁(锁粒度大并发能力弱)。

    Innodb:行级锁、表级锁(锁粒度小并发能力高)。

    9. SELECT查询

    MyISAM更优。

    10. INSERT、UPDATE、DELETE

    InnoDB更优。

    11. select count(*)

    MyISAM:更快,因为MyISAM内部维护了一个计数器,可以直接调取(但是如果加了where条件就和InnoDB一样了)。

    Innodb:不保存具体的行数,需要遍历整个表来计算。

    12. 索引的实现方式

    MyISAM:B+树索引,MyISAM是堆表 。

    Innodb: B+树索引,Innodb是索引组织表。

    13. 哈希索引

    MyISAM:不支持。

    Innodb:支持。(自定义哈希,不能手动创建)

    14. 全文索引

    MyISAM:支持。

    Innodb:支持(5.6版本开始支持的)。

     

     

    2. MyISAM的索引和InnoDB的索引有什么区别

    • InnoDB索引是聚簇索引,MyISAM索引是非聚簇索引。

    • InnoDB的主键索引的叶子节点存储的是行数据,因此主键索引非常高效。

    • MyISAM索引的叶子节点存储的是行数据地址,需要一次寻址的操作才能获取到数据。

    • InnoDB非主键索引的叶子节点存储的是主键和其他带索引的数据,因此查询是用索引覆盖会更高效。

     

    InnoDB-主键索引

    叶子节点存储的是具体的行数据

     

    InnoDB-非主键索引

    非主键索引的叶子节点存储的是主键

     

    MyISAM

    叶子节点存储的是行数据的地址,需要一次寻址

     

    mysql进阶系列持续更新中

    欢迎关注公众号: 纪先生笔记

    获取更多资料

     

     

     

     

     

     

     

     

  • 相关阅读:
    qt鼠标事件总结(坐标,跟踪,点击判断)
    从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml
    前端篇: 前端演进史
    找一款防文件或文件夹误删除,移动,修改的软件
    yyyy
    盘点我用过的那些网盘(那些年,我们一起玩的网盘)
    Win8/8.1/10获得完整管理员权限的方法
    [置顶] IT老男人读《因为痛,所以叫青春》
    dddd
    用JUNCTION映射文件夹内容 解决多系统跑同一个虚拟机而共享文件夹路径不同的问题
  • 原文地址:https://www.cnblogs.com/sunjiguang/p/15035962.html
Copyright © 2020-2023  润新知