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

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.kler.cn/a/307050.html

相关文章:

  • @CrossOrigin打破同源策略
  • 从零开始训练一个大语言模型需要多少天?
  • linux 安装 pgsql 以及 pgvector
  • 前端开发利器:npm 软链接
  • QML:Menu详细使用方法
  • 「实战应用」如何用图表控件LightningChart .NET在WPF中制作表格?(一)
  • Python 解析 JSON 数据
  • RabbitMQ高级篇,进阶内容
  • 【题解】AT_arc035_b [ARC035B] アットコーダー王国のコンテスト事情
  • 手势开关灯
  • 宿舍管理系统的设计与实现 (含源码+sql+视频导入教程)
  • 【Kubernetes】常见面试题汇总(十八)
  • git rev-parse
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • BM5 合并k个已排序的链表
  • 一、机器学习算法与实践_01基本概念与项目流程笔记
  • 一句话描述设计模式
  • 深入分析计算机网络性能指标
  • 无人机培训机构组装调试技术详解
  • 【我的 PWN 学习手札】Fastbin Double Free
  • 【系统分析师】-安全体系
  • 鸿蒙轻内核A核源码分析系列七 进程管理 (2)
  • 华为OD机试真题E卷-计算网络信号(含题目描述+解题思路+代码解析)
  • 记录一下gitlab社区版的安装教程
  • 通过TensorBoard查看服务器训练过程
  • 【LeetCode】每日一题 2024_9_15 与车相交的点(差分)