当前位置: 首页 > news >正文

快速了解:MySQL InnoDB和MyISAM的区别

目录

  • 一、序言
  • 二、InnoDB和MyISAM对比
    • 1、InnoDB特性支持如下
    • 2、MyISAM特性支持如下
  • 三、两者核心区别
    • 1、事务支持
    • 2、锁机制
    • 3、索引结构
    • 4、缓存机制
    • 5、故障恢复
    • 6、使用场景

一、序言

在MySQL 8.0中,InnoDB是默认的存储引擎。除了InnoDB,MySQL还支持其它的存储引擎,比如MyISAMMEMORYCSVARCHIVEBLACKHOLEMERGEFEDERATE等。

除非在创建表的时候手动指定存储引擎,不然创建的表都是InnoDB管理的表。

今天我们根据官方文档详细聊聊InnoDB和MyISAM的区别。

二、InnoDB和MyISAM对比

1、InnoDB特性支持如下

特性是否支持
B-tree indexes
备份/时间点恢复是 (Server层实现而不是存储引擎层)
集群数据库支持
聚簇索引
压缩数据
数据缓存
加密数据是(Server层经过加密函数实现)
外键支持
全文搜索索引是(MySQL 5.6及以上版本支持)
空间数据类型支持
空间索引支持是(MySQL 5.7及以上版本支持)
哈希索引
索引缓存
锁粒度行级
MVCC
复制支持是 (Server层实现,而不是存储引擎层)
存储上限64TB
T-tree索引
事务
数据字典更新统计

2、MyISAM特性支持如下

特性是否支持
B-tree indexes
备份/时间点恢复是 (Server层实现而不是存储引擎层)
集群数据库支持
聚簇索引
压缩数据
数据缓存
加密数据是(Server层经过加密函数实现)
外键支持
全文搜索索引
空间数据类型支持
空间索引支持
哈希索引
索引缓存
锁粒度表级
MVCC
复制支持是 (Server层实现,而不是存储引擎层)
存储上限256TB
T-tree索引
事务
数据字典更新统计

三、两者核心区别

1、事务支持

  • InnoDB:支持事务,提供ACID特性,适合需要事务保证的应用。
  • MyISAM:不支持事务,每次操作视为独立才做,不保证原子性,适合读多写少的应用。

2、锁机制

  • InnoDB:支持行级锁和表级锁,行级锁粒度更小,适合高并发场景。
  • MyISAM:只支持表级锁,读写操作都会锁表,适合读多写少的场景。

3、索引结构

  • InnoDB:使用聚簇索引,数据文件和索引文件合并在一个.ibd文件,提高查询效率。
  • MyISAM:使用非聚簇索引,数据文件和索引文件是分开的,分为.MYD(MyData).MYI(MYIndex)文件,索引文件较大,但查询速度快。

4、缓存机制

  • InnoDB:有自己的Buffer Pool,用于缓存数据和索引,减少磁盘访问。
  • MyISAM:只缓存索引文件,不缓存数据文件,每次查询都需要从磁盘读取访问。

5、故障恢复

  • InnoDB:通过Redo log和Undo log可以进行数据的恢复和回滚,适合需要保证数据一致性和持久性的场景。
  • MyISAM:故障恢复能力较弱,可能导致数据丢失。

6、使用场景

  • InnoDB:适用于对事务要求较高、数据一致性和完整性要求严格的应用场景,如银行、电商系统等。
  • MyISAM:适用于一些对事务要求不高、以读为主的应用场景,如数仓、报表系统等。

在这里插入图片描述


http://www.mrgr.cn/news/40457.html

相关文章:

  • MATLAB数字水印系统
  • 计算机网络自顶向下(2)----socket编程
  • 【YOLO系列】YOLOv11正式发布!
  • 足球青训俱乐部后台:Spring Boot开发策略
  • SOMEIP_ETS_144: SD_Reserved_Field_Endpoint_Option_set
  • stm32单片机学习 - MDK仿真调试
  • u盘格式化后数据能恢复吗?2024年Top4恢复神器来帮忙
  • 基于JAVA+SpringBoot+Vue的电商平台的设计与实现
  • 第十讲-显示控件QLabel
  • 论文笔记:LAFF 文本到视频检索的新基准
  • 滚雪球学MySQL[2.3讲]:MySQL数据过滤与排序详解:WHERE条件、ORDER BY排序与LIMIT分页查询
  • 「漏洞复现」EDU 某智慧平台 PersonalDayInOutSchoolData SQL注入漏洞
  • TypeScript 算法手册【选择排序】
  • 【Linux学习】基本指令其二
  • Leetcode45. 跳跃游戏 II
  • 关于计算机算法设计方法的思考
  • 监控易监测对象及指标之:Exchange邮件服务器监测
  • 死锁相关概念
  • 足球青训后台管理系统:Spring Boot实现指南
  • VMware Aria Automation Orchestrator 8.18 发布,新增功能概览