mysql 存储引擎

本文主要对比了MySQL的MyIsam和InnoDB存储引擎。在存储结构上,MyIsam存储在独立文件,InnoDB则在同一文件;存储空间上,MyIsam可压缩,InnoDB需更多内存;事务支持方面,MyIsam无事务支持,InnoDB提供事务等高级功能;表锁上,MyIsam是表级锁,InnoDB支持行级锁。并给出了不同场景下的引擎选择建议。

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

mysql 存储引擎。MyIsam 和InnerDB

  1. 存储结构不同。myisam存储在独立的文件中.MYD (MYData),索引文件的扩展名是.MYI (MYIndex),.frm文件存储表定义。而innerdb所有的表都存储在同一个文件中。

  2. 存储空间不同。MyISAM:可被压缩,存储空间较小。支持三种不同的存储格式:静态表(默认,但是注意数据末尾不能有空格,会被去掉)、动态表、压缩表。
    InnoDB:需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

  3. 事务支持(重要)。MyISAM:其执行数度比InnoDB更快,但是不提供事务支持。
    InnoDB:提供事务支持事务,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。

  4. 表锁差异(重要)。MyISAM:只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁,如果加锁以后的表满足insert并发的情况下,可以在表的尾部插入新的数据。
    InnoDB:支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁 。
    所以,一般对于读比较频繁,且数据安全性,完整性要求不是很高的表,采用myisam。对于一些数据量比较大,更新操作比较频繁,且ACID要求比较高的,采用innerdb。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值