美文网首页
mysql,MyISAM和InnoDB对比

mysql,MyISAM和InnoDB对比

作者: 悠悠行万里丶 | 来源:发表于2019-02-16 09:52 被阅读0次

    MyISAM和 innodb 的实现上的区别?

    1.一个聚簇一个非聚簇

      聚簇索引保证关键字的值相近的元组存储的物理位置也相同(所以字符串类型不宜建立聚簇索引,特别是随机字符串,会使得系统进行大量的移动操作),且一个表只能有一个聚簇索引。因为由存储引擎实现索引,所以,并不是所有的引擎都支持聚簇索引。目前,只有solidDB和InnoDB支持。

    INNODB在做SELECT的时候,要维护的东西比MYISAM引擎多很多:

    1)数据块,INNODB要缓存,MYISAM只缓存索引块,  这中间还有换进换出的减少;

    2)innodb寻址要映射到块,再到行,MYISAM记录的直接是文件的OFFSET,定位比INNODB要快

    (phil 注: myisam 更新频率低,所以 索引变更少 . 所以允许每次更新 即更新主索引,也更新副索引,更新 offset)

    3)INNODB还需要维护MVCC一致;虽然你的场景没有,但他还是需要去检查和维护

    MVCC (Multi-Version Concurrency Control)多版本并发控制

    (phil 注: 由于没有了多行,不需要判断 选取可见的那行数据)

    myisam 表锁.牺牲了写性能,提高了读性能.

    相关文章

      网友评论

          本文标题:mysql,MyISAM和InnoDB对比

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