mysql存储引擎InnoDB与MyISAM的区别

本文详细介绍了MySQL中InnoDB和MyISAM两种存储引擎的区别。InnoDB支持事务处理和行级锁定,适合高并发场景,而MyISAM只支持表级锁定,不支持事务。此外,InnoDB使用MVCC实现高并发,MyISAM则分为静态、动态和压缩三种存储格式。两者在索引和空间占用上也有所不同,InnoDB的聚簇索引和MyISAM的非聚簇索引各有特点。
摘要由CSDN通过智能技术生成

mysql存储引擎InnoDB与MyISAM的区别

众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别?

一.MyISAM 存储引擎
1.MyISAM存储引擎不支持事务
2.MyISAM存储引擎支持表锁设计,不支持行锁、外键
3.MyISAM存储引擎表由MYD和MYI两部分组成,其中MYD(MYData)用来存放数据文件,而MYI(MYIndex)则用来存放索引文件。另外 .frm存储表定义
4.支持3种不同存储格式 A. 静态表,固定长度表,存储速度快,占用空间多,故障易回复 B.动态表,占用空间相对小,频繁更新,产生碎片多,故障恢复难 C.压缩表,占用空间小,每个记录被单独压缩
二.InnoDB 存储引擎
1.InnoDB存储引擎支持事务
2.InnoDB存储引擎支持行锁和表锁设计,同时支持外键
3.自动增长列必须是索引,如果是组合索引,也必须是组合缩影的第一列
4.InnoDB存储引擎表单独存放到一个独立的ibd文件中
5.InnoDB通过使用多版本并发控制MVCC来获得高并发性

注: 1. MyISAM 和InnoDB 存储引擎默认BTREE索引,支持前缀索引,MyISAM 前缀长度为1000 字节,而InnoDB 前缀长度为767字节
2. InnoDB中至少有一个聚簇索引,可以有多个非聚簇索引,MyISAM中只有非聚簇索引

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值