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

Mysql InnoDB 存储引擎简介

InnoDB 存储引擎是 Mysql 的默认存储引擎,它是由 Innobase Oy 公司开发的

Mysql 为什么默认使用 InnoDB 存储引擎

InnoDB 是一款兼顾高可靠性和高性能的通用存储引擎

在 Mysql 5.5 版本之前,默认是使用 MyISAM 存储引擎,在 5.5 及其之后版本,都默认使用 InnoDB 存储引擎;

可通过 show engines 命令查看当前服务支持的存储引擎

 各个存储引擎支持的特性

由上图可以看出 InnoDB 存储引擎 相比于 MyISAM 存储引擎

支持事务(也是众多存储引擎中唯一支持的),使用行级锁(高并发性),支持崩溃时自动恢复,支持外键约束,支持全文索引,支持自适应哈希索引(针对反复查询的行),使用缓冲池(用于缓存数据页和索引,提高数据的访问速度)

所以基于上述 InnoDB 的优势,可以得出

  • 事务支持和数据完整性:InnoDB 支持事务和外键约束,能够保证数据的完整性和一致性,适用于复杂的应用场景。而 MyISAM 不支持事务,存在数据丢失的风险。

  • 高并发性能:InnoDB 采用行级锁,相较于 MyISAM 的表级锁,能够在高并发环境下表现更好,提高读写性能,减少锁冲突。

  • 崩溃恢复能力:InnoDB 提供了更可靠的崩溃恢复机制,能在系统宕机或故障后自动恢复数据,保证系统的可用性和数据安全性。

因此在 Mysql 5.5 及其以后,使用了 InnoDB 存储引擎;

InnoDB 存储引擎架构

官方给出的架构图

由上图可以看出,InnoDB 主要包括内存结构和磁盘结构 

其中内存结构包括:缓冲池(Buffer pool),变更缓冲区(Change Buffer),日志缓冲区(Log Buffer),自适应哈希(Adaptive Hash Index)

磁盘结构包括:系统表空间,独立表空间,通用表空间,临时表空间,撤销表空间,撤销日志,双写缓冲区

http://www.lryc.cn/news/439181.html

相关文章:

  • 驾校预约学习系统的设计与实现
  • Python--读取文件时出现的报错
  • 基于http请求的一种安全校验认证方案记录
  • 链动321模式开发系统解析源码
  • TypeScript 快速上⼿ (3:装饰器)
  • el-input设置后缀显示单位并阻止滚轮微调
  • Redis Key的过期策略
  • 数据结构:时间复杂度与空间复杂度
  • C语言实现贪吃蛇小游戏
  • 深入解析包裹信息管理系统:关系型数据库逻辑数据模型设计、超类实体与派生属性探讨
  • Cyber Weekly #24
  • Java多线程面试精讲:源于技术书籍的深度解读
  • 【Elasticsearch系列七】索引 crud
  • 快速生成服务器响应json-server的安装和使用
  • 增强LinkedList实现瑞士轮赛制编排
  • C++编译环境(IDE)推荐及安装
  • Android 12系统源码_窗口管理(八)WindowConfiguration的作用
  • 已读论文创新点合集
  • 12_持久化数据结构
  • 【计算机网络】IP, 以太网, ARP, DNS
  • OpenCore Legacy Patcher 2.0.0 发布,83 款不受支持的 Mac 机型将能运行最新的 macOS Sequoia
  • 爆改YOLOv8|使用MobileNetV4替换yolov8的Backbone
  • C语言 | Leetcode C语言题解之第406题根据身高重建队列
  • 【Git】初识Git
  • vue3 透传 Attributes
  • 4.接口测试基础(Jmter工具/场景二:一个项目由多个人负责接口测试,我只负责其中三个模块,协同)
  • electron react离线使用monaco-editor
  • Python 的 WSGI 简单了解
  • 基于stm32使用ucgui+GUIBuilder开发ui实例
  • Spring扩展点系列-ApplicationContextAwareProcessor