MyISAM和InnoDB的存储引擎区别

本文详细比较了MySQL中两种流行的表引擎MyISAM与InnoDB的特点与区别,包括数据存储方式、性能表现、事务处理能力、外键支持及查询优化等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      //数据表的类型及存储位置 
      表引擎(ENGINE)或者表类型 
      a) MyISAM(管理方便)
               bbs_user1.frm   表结构 
               bbs_user1.MYI   表索引
               bbs_user1.MYD   表数据 
      B) innoDB 
               test.frm   表结构
               ibdatal    存储所有数据库当中所有innodb表的索引和数据(共享表空间)
      C) MyISAM和innoDB的区别 
               1 Myisam 数据表类型(引擎)更加成熟 稳定 易于管理
               2 Myisam 便会产生碎片空间 要经常使用 optimize table 来进行优化 而innodb不会 
               3 Myisam 不支持事物处理 而innodb支持 
               4 Myisam 不支持外键 innodb支持 
               5 Myisam 会产生三个文件 .frm(表结构) .MYI(表索引) .MYD(表数据)
               6 innodb 只会产生一文件 .frm(表结构) 数据和索引全部存在共享表空间当中(iddatal)
               7 Myisam(推荐使用) 效率高于 innodb  
               
               A 如果应用程序一定要使用事务 毫无疑问选择INNODB引擎 要注意 INNODB的行级锁是有条件的 在where条件没有使用主键时 照样会锁全表 比如DELETE FROM mytable这样的删除语句 
               B 如果应用程序对查询性能要求较高 要使用MYISAM了 MYISAM索引和数据是分开的 而且其索引是压缩的 可以更好地利用内存 所以它的查询性能明显优于INNODB 压缩后的索引也能节约一些磁盘空间 MYISAM拥有全文索引的功能 这可以极大地优化LIKE查询的效率 
               C 有人说MYISAM只能用于小型应用 其实这只是一种偏见 如果数据量比较大 这是需要通过升级架构来解决 比如分表分库 而不是单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值