原创

Innodb 和 MYISAM的区别

温馨提示:
本文最后更新于 2022年11月29日,已超过 890 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
  1. 存储结构不同
    myisam:每个myisam在磁盘上存储三个文件。第一个文件的名字是以表的名字开始,拓展名指出文件的类型,
    .frm 存储表的定义
    .myd 存储表数据
    .myi 存储表的索引
    innodb:所在的表都保存在同一个数据文件中(也可能是对个文件,也可能是表空间),innodb表的大小只受限与操作系统文件的大小,一般为2GB
  2. 存储空间不同
    myisam:可能被压缩,存储空间较小,支持三种不同的存储格式,静态表、动态表、压缩表
    innodb:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池,用于告诉缓冲数据和索引。
  3. 事物的支持
    myisam:强调的是性能,每次查询具有原子性,其查询速度比innodb要快,但是不提供事物支持
    innodb:提供事物支持,外部键等高级数据库功能。具有事物、回滚、崩溃修复能力的事物安全型表。
  4. CURD操作
    myisam:如果执行大量的select。myisam是更好的选择(因为没支持行级锁),在增删的时候需要锁定整个表格,效率会低一些。
    innodb:提供行级别的锁,新增和删除的时候只需要锁定当前行就可以效率很高。
    如果你数据库表需要执行大量的insert 和 update,处于性能考虑应该使用innodb表。delete操作从性能上考虑innodb更优
  5. 外键
    myisam:不支持
    innodb:支持
正文到此结束