MySQL存储引擎

InnoDB 和 MyISAM 的区别

  • InnoDB 支持事务,MyISAM 不支持,这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一
  • InnoDB 支持外键,MyISAM 不支持,对一个包含外键的 InnoDB 表转为 MyISAM 会失败
  • InnoDB 是聚集索引(聚簇索引),MyISAM 是非聚集索引
  • InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁,这也是默认存储引擎改变的重要原因之一
  • MyISAM 在硬盘上存储为三个文件
    • .frm:表的定义
    • .myd:数据文件
    • .myi:索引文件
  • InnoDB 是两个文件(没有专门保存数据的文件)
    • .frm:表的定义
    • .ibd:数据和索引文件,数据也会保存在叶子节点中
  • 全文索引都支持