当前位置 博文首页 > tongtongsong的博客:Mysql 存储引擎————MyISAM、InnoDB 使

    tongtongsong的博客:Mysql 存储引擎————MyISAM、InnoDB 使

    作者:[db:作者] 时间:2021-08-05 19:04

    MySQL存储引擎:

    1、InnoDB存储引擎

    • 默认事务型引擎,最重要最广泛的存储引擎,性能非常优秀。

    • 数据存储在共享表空间,可以通过配置分开。也就是多个表和索引都存储在一个表空间中,可以通过配置文件改变此配置。

    • 对主键查询的性能高于其他类型的存储引擎。

    • 内部做了很多优化,从磁盘读取数据时会自动构建hash索引,插入数据时自动构建插入缓冲区。

    • 通过一些机制和工具支持真正的热备份。

    • 支持崩溃后的安全恢复。

    • 支持行级锁。

    • 支持外键。

    2、MyISAM存储引擎

    • 拥有全文索引、压缩、空间函数。

    • 不支持事务和行级锁、不支持崩溃后的安全恢复。

    • 表存储在两个文件,MYD和MYI。

    • 设计简单,某些场景下性能很好,例如获取整个表有多少条数据,性能很高。

    • 全文索引不是很常用,不如使用外部的ElasticSearch或Lucene。


    3、MyISAM和InnoDB的区别

    • InnoDB支持事务,MyISAM不支持;

    • InnoDB数据存储在共享表空间,MyISAM数据存储在文件中;

    • InnoDB支持行级锁,MyISAM只支持表锁;

    • InnoDB支持崩溃后的恢复,MyISAM不支持;

    • InnoDB支持外键,MyISAM不支持;

    • InnoDB不支持全文索引,MyISAM支持全文索引;


    ps:大多数场景下建议使用InnoDB存储引擎。

    cs