MySQL:Buffer Pool、Redo log、Undo log、Binlog笔记

乐肇
• 阅读 750

MySQL是计算机程序常用的开源数据库管理系统,MySQL技能一直是面试中高频率命中考题,下面一起简单复盘下MySQL基础知识:
MySQL是个支持插拔式的数据库管理系统软件,从存储引擎到解析器都可以被替换,下面以Innodb存储引擎为例进行分析。
MySQL对内存的管理以页为单位(16k)从磁盘读取到内存的Buffer Pool中,当查询数据时命中数据连同数据伙伴一起读到Buffer Pool中,当写数据时,会写到Buffer Pool中和Redo log中,Redo log是顺序存储,存储引擎是随机存储,Redo log被当作数据恢复日志使用,用来记录数据库宕机、丢失后数据恢复为主(先预写日志Redo Buffer,再进行刷盘操作),因此Redo log能保证数据的不丢失。
Undo log是支撑事务回滚操作的文件系统,当修改数据并且进行刷盘后,回复刷盘前的数据靠Undo log进行记录恢复。
Binlog和Redo log有着相似之处,记录修改后的数据,Binlog侧重于逻辑日志,记录对数据内存页位置进行修改,属于Server层,Redo log侧重实际的写数据,属于存储引擎层。MySQL的集群高可用主要靠Binlog日志进行实现。

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
MySQL数据库表设计规范
一、数据库设计1、一般都使用INNODB存储引擎,除非读写比率<1%,才考虑使用MYISAM存储引擎;其他存储引擎请在DBA的建议下使用。2、Storedprocedure(包括存储过程,函数,触发器)对于MYSQL来说还不是很成熟,没有完善的出错记录处理,不建议使用。3、UUID(),USER()这样的
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
MySQL数据库操作规范
MySQL数据库操作规范文档说明:该文档旨在对MySQL数据库的使用做一个统一的约定和规范;以便使大家更明确、更有效的用好数据库,最终使数据库发挥更好的作用,从而提升产品的质量。一、基础规范1.1、【强制】使用InnoDB存储引擎。解读:InnoDB存储引擎是MySQL默认存储引擎,
Wesley13 Wesley13
4年前
mysql存储引擎
什么是存储引擎?MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySql的存储引擎:MyISAM节省数据库空间,当数据读远大于修改时,可以使用该存储引擎InnoDB支持事务,
Stella981 Stella981
4年前
MariaDB安装教程
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。安装命令yumyinstallmariadbmariadbser
Wesley13 Wesley13
4年前
MySQL存储过程之事务管理
MySQL存储过程之事务管理ACID:Atomic、Consistent、Isolated、Durable存储程序提供了一个绝佳的机制来定义、封装和管理事务。1,MySQL的事务支持MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关:Java代码 1.MyISAM:不支
Wesley13 Wesley13
4年前
MySQL数据库InnoDB存储引擎Log漫游(3)
作者:宋利兵来源:MySQL代码研究(mysqlcode)0、导读本文重点介绍了InnoDB的checkpoint和BufferPool管理04–Checkpoint理论上来说,如果MySQL数据库InnoDB存储引擎的buffer足够大,就不需要将数据本身持久化。将全部的redolog重新执行
Wesley13 Wesley13
4年前
MySQL 你可能忽视的选择问题
我们在MySQL入门篇主要介绍了基本的SQL命令、数据类型和函数,在局部以上知识后,你就可以进行MySQL的开发工作了,但是如果要成为一个合格的开发人员,你还要具备一些更高级的技能,下面我们就来探讨一下MySQL都需要哪些高级的技能MySQL存储引擎存储引擎概述数据库最核心的一点就是用来存储数据,数
Wesley13 Wesley13
4年前
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文
Wesley13 Wesley13
4年前
mysql储存引擎
Mysql数据库常用存储引擎数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是插件式存储引擎。
MySQL之InnoDB存储结构 | 京东物流技术团队
InnoDB存储引擎最早由InnobaseOy公司开发(属第三方存储引擎)。从MySQL5.5版本开始作为表的默认存储引擎。该存储引擎是第一个完整支持ACID事务的MySQL存储引擎,特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,非常适合OLTP场景的应用使用。目前也是应用最广泛的存储引擎。