MYSQL - 执行引擎对比(innoDB 与 myISAM)

InnoDB和MyISAM是MySQL中常见的两种存储引擎。InnoDB支持事务和外键,适合高并发的插入和更新操作,提供行级锁以提升并发处理能力。而MyISAM侧重于快速读取,使用表级锁,适合读密集型应用。InnoDB使用聚集索引,索引和数据存储在一起,而MyISAM则分开存储。在选择时,根据事务需求、并发处理和数据一致性的要求来决定使用哪种引擎。
摘要由CSDN通过智能技术生成

INNODB 与 MYISAM 对比

innodb 和 myisam 是使用mysql 时最常用的两种类型。

  • 事务与外键
    innobd 支持事务与外键,具有安全性和完整性,适合大量insert 或update 操作。
    myisam 不支持事务和外键,它提供高速存储和检索,适合大量的select 查询操作。
  • 锁机制
    innoDB 支持行级锁,锁定指定记录。基于索引来加锁实现。
    myisam 支持表级锁,锁定整张表。
  • 索引结构
    innodb 使用聚集索引(聚簇索引),索引和记录一起存储,即缓存索引,也缓存记录。
    myisam 使用非聚集索引(非聚簇索引),索引和记录分开。
  • 并发处理能力
    myisam 使用表锁,会导致写操作并发率低,读之间并不阻塞,读写阻塞。
    innodb 读写阻塞可以与隔离级别有关,可以采用多版本并发控制(MVCC)来支持高并发。
  • 存储文件
    InnoDB 表对应两个文件,一个.frm 表结构,一个.ibd 数据文件。InnoDB 表支持64TB。
    MyISAM 表对应三个文件,一个.frm 表结构文件,一个MYD 表数据文件,一个.MYI 索引文件。从MySQL 5.0 开始默认限制是256TB。
  • 适用场景
    MyISAM
    不需要事务支持(不支持)
    并发相对较低(锁定机制问题)
    数据修改较少,以读为主
    数据一致性要求不高
    InnoDB
    需要事务支持(具有较好的事务特性)
    行级锁定对高并发有较好的适应能力
    数据更新较为频繁的场景
    数据一致性要求较高
    硬件设备内存较大,可以利用InnoDB 较好的缓存能力来提高内存利用率,减少磁盘IO。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值