为什么MySQL数据库必须使用binlog、redo log和undo log实现数据持久化?

2026-05-05 22:001阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3281个文字,预计阅读时间需要14分钟。

为什么MySQL数据库必须使用binlog、redo log和undo log实现数据持久化?

MySQL最初采用的存储引擎是自研的仅支持简单查询的MyISAM,前身是ISAM。后来与Sleepycat合作研发了Berkeley DB引擎,支持了事务。随着技术的不断发展,MySQL不断升级,自身也在持续进步。

MySQL最初搭载的存储引擎是自研的只支持简单查询的MyISAM的前身ISAM,后来与Sleepycat合作研发了Berkeley DB引擎,支持了事务。江山代有才人出,技术后浪推前浪,MySQL在持续的升级着自己的存储引擎的过程中,遇到了横空出世的InnoDB,InnoDB的功能强大让MySQL倍感压力。自己的存储引擎打不过InnoDB怎么办?打不过就加入!

全文建立在MySQL的存储引擎为InnoDB的基础上

先看一条SQL如何入库的:

这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存储引擎。

  1. Server层就像一个产品经理,分析客户的需求,并给出实现需求的方案。
  2. InnoDB就像一个基层程序员,实现产品经理给出的具体方案。

在MySQL”分析需求,实现方案“的过程中,还夹杂着内存操作和磁盘操作,以及记录各种日志。

他们到底有什么用处?他们之间到底怎么配合的?MySQL又为什么要分层呢?InnoDB里面的那一块Buffer Pool又是什么?

我们慢慢分析。

分层结构

MySQL为什么要分为Server层和存储引擎两层呢?

这个问题官方也没有给出明确的答案,但是也不难猜,简单来说就是为了“解耦”。

阅读全文

本文共计3281个文字,预计阅读时间需要14分钟。

为什么MySQL数据库必须使用binlog、redo log和undo log实现数据持久化?

MySQL最初采用的存储引擎是自研的仅支持简单查询的MyISAM,前身是ISAM。后来与Sleepycat合作研发了Berkeley DB引擎,支持了事务。随着技术的不断发展,MySQL不断升级,自身也在持续进步。

MySQL最初搭载的存储引擎是自研的只支持简单查询的MyISAM的前身ISAM,后来与Sleepycat合作研发了Berkeley DB引擎,支持了事务。江山代有才人出,技术后浪推前浪,MySQL在持续的升级着自己的存储引擎的过程中,遇到了横空出世的InnoDB,InnoDB的功能强大让MySQL倍感压力。自己的存储引擎打不过InnoDB怎么办?打不过就加入!

全文建立在MySQL的存储引擎为InnoDB的基础上

先看一条SQL如何入库的:

这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存储引擎。

  1. Server层就像一个产品经理,分析客户的需求,并给出实现需求的方案。
  2. InnoDB就像一个基层程序员,实现产品经理给出的具体方案。

在MySQL”分析需求,实现方案“的过程中,还夹杂着内存操作和磁盘操作,以及记录各种日志。

他们到底有什么用处?他们之间到底怎么配合的?MySQL又为什么要分层呢?InnoDB里面的那一块Buffer Pool又是什么?

我们慢慢分析。

分层结构

MySQL为什么要分为Server层和存储引擎两层呢?

这个问题官方也没有给出明确的答案,但是也不难猜,简单来说就是为了“解耦”。

阅读全文