常见的存储引擎及区别

本文介绍了MySQL中四种常见的存储引擎:InnoDB、MyISAM、MEMORY和ARCHIVE。InnoDB支持事务处理、外键和崩溃修复,适合高并发和完整性要求高的场景;MyISAM具有快速插入和查询,适用于读取密集型应用;MEMORY数据存储在内存中,适合临时表;ARCHIVE适合存储历史记录,支持高效插入但不支持索引。

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

存储引擎就是指表的类型以及表在计算机上的存储方式

MySQL 中常用的四种存储引擎分别是:MyISAMInnoDBMEMORYARCHIVE

MySQL 5.5 版本后默认的存储引擎为InnoDB。

1、InnoDB 存储引擎

InnoDB给MySQL的表提供了事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是其他存储引擎不能比拟的。靠后版本的MySQL的默认存储引擎就是InnoDB

InnoDB存储引擎总支持AUTO_INCREMENT。MySQL中规定自增列必须为主键。

InnoDB还支持外键(FOREIGN KEY)。外键所在的表叫做子表,外键所依赖(REFERENCES)的表叫做父表。父表中被字表外键关联的字段必须为主键。当删除、更新父表中的某条信息时,子表也必须有相应的改变,这是数据库的参照完整性规则

InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。

InnoDB将它的表和索引在一个逻辑表空间中(就是索引的key和data放在一起,聚集索引),表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中(索引的key和data不放在一起,而data存的是地址的指针,非聚集索引)。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上

InnoDB中,创建的表的表结构存储在.frm文件中(我觉得是frame的缩写吧)。数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。

优点:提供了良好的事务处理、崩溃修复能力和并发控制。

缺点:占用的数据空间相对较大。

2、MyISAM 存储引擎

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值