千家信息网

mysql数据库引擎 MyISAM和 InnoDB区别

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,1、 存储结构MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的
千家信息网最后更新 2025年11月07日mysql数据库引擎 MyISAM和 InnoDB区别

1、 存储结构

MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。
InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。

2、 存储空间

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

3、 事务支持

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

4、 CURD操作

MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。(因为没有支持行级锁),在增删的时候需要锁定整个表格,效率会低一些。相关的是innodb支持行级锁,删除插入的时候只需要锁定改行就行,效率较高
InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。DELETE 从性能上InnoDB更优,但DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除,在innodb上如果要清空保存有大量数据的表,最好使用truncate table这个命令。

5、 外键

MyISAM:不支持
InnoDB:支持

文件 支持 数据 存储 事务 性能 空间 一行 内存 名字 大小 扩展名 效率 时候 类型 索引 缓冲 数据库 不同 高级 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 在小米做嵌入式软件开发怎么样 腾讯云大学生服务器 徐汇区品质数据库服务有哪些 网络安全 华东理工 coalesce是什么数据库 知网的国家标准全文数据库怎么进 潍坊科技信息互联网有限公司 青海超频服务器出厂价 金山区品牌软件开发定制报价表 arm服务器是什么牌子 33岁还适合学软件开发吗 win7能否做服务器 网络安全攻防需要哪些硬件 数据库找到工资最高的员工 面试中会问到的网络安全知识点 华为软件开发项目管理流程图 遍历数据库中数据到li里 国家网络安全相关部门 服务器需要测试哪些接口 常用服务器管理软件 服务器2003安全管理 正确的网络安全体系 我的世界服务器声望 组装一台服务器什么价格 服务器蓝屏后重启过一会又蓝屏 qq pop3服务器 网络安全手抄报. 漂亮 域名服务器网站进不去 我的世界招聘服务器管理员 中国网络安全公报19
0