当前位置: 首页 > 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.lryc.cn/news/451560.html

相关文章:

  • TI DSP TMS320F280025 Note14:模数转换器ADC原理分析与应用
  • 【C++前缀和】2845. 统计趣味子数组的数目|2073
  • C++入门基础 (超详解)
  • docker零基础入门教程
  • 【Java SE 题库】移除元素(暴力解法)--力扣
  • linux文件编程_进程
  • java NIO实现UDP通讯
  • ffmpeg如何实现视频推流?
  • 【HTML5】html5开篇基础(3)
  • echarts实现3D柱状图(视觉层面)根据博主改编
  • 【一篇文章理解Java中多级缓存的设计与实现】
  • OpenSource - 开源WAF_SamWaf
  • 旅游避坑指南
  • 矩阵系统源码搭建的具体步骤,支持oem,源码搭建
  • 正则表达式调试工具实战
  • SQL:函数以及约束
  • 在Linux中将设备驱动的地址映射到用户空间
  • 电脑自带dll修复在哪里,dll丢失的6种解决方法总结
  • k8s基于nfs创建storageClass
  • Chrome无法拖入加载.crx扩展文件(以IDM为例)
  • 数字教学时代:构建高效在线帮助中心的重要性
  • 828华为云征文|华为云弹性云服务器FlexusX实例下的Nginx性能测试
  • 知识图谱入门——2:技术体系基本概念:知识表示与建模、知识抽取与挖掘、知识存储与融合、知识推理与检索
  • 【不看会后悔系列】排序之——文件归并【史上最全详解】~
  • 安全点的应用场景及其原理详解
  • 计算机各专业2025毕业设计选题推荐【各专业 | 最新】
  • 【Python报错已解决】IndexError: index 0 is out of bounds for axis 1 with size 0
  • SpringGateway(网关)微服务
  • jQuery面试题:(第三天)
  • 聊聊国内首台重大技术装备(2)