文章目录前言一、架构图1、MySQL架构图2、InnoDB架构图二、分析1.第一阶段2.第二阶段3.第三阶段4.第四阶段5.第五阶段6.第六阶段三、总结四、崩溃恢复 前言在上一章中我们聊到了事务有四大特性:原子性、一致性、隔离性、持久性。本篇文章就持久性重点聊一下,在高性能MySql一书中,对持久性的定义是:一旦事务提交,则起所做的修改就会永久保存到数据库中,此时即使数据库或系统崩溃,修
转载 2023-09-22 14:44:38
505阅读
# MySQL 数据详解 ## 引言 在现代数据库系统中,MySQL 作为一个广泛使用的开源数据库,在数据管理方面提供了高效的机制。本文将深入探讨 MySQL 数据的“”过程,了解其背后的原理,并通过代码示例帮助我们更好的理解。 ## 什么是数据? 在 MySQL 中,数据被组织为“”(page),通常每页尺寸为 16KB。每个页面可以存储多行记录,而数据库的读写操作通常都
原创 2024-10-23 04:18:52
59阅读
# MySQL rollback对数据影响 ## 引言 在MySQL数据库中,rollback是一种回滚事务的操作。当一个事务发生错误或者被取消时,可以使用rollback将数据库恢复到事务开始之前的状态。本文将介绍MySQL rollback对数据的影响,并提供一个实例来说明如何执行rollback操作。 ## 流程图 下表展示了执行rollback操作的流程: | 步骤
原创 2023-12-27 09:32:22
23阅读
        master thread的县城优先级别最高.其内部由几个循环(loop)组成:主循环(loop)、后台循环(background loop)、刷新循环(flush loop)、暂停循环(suspend loop)。master thread 会根据数-据库运行的状态在loop,background loop、flush loop 和susp
一条SQL语句,正常执行时候特别快,有时候会突然变得特别慢,而且很难复现,它不只是随机而且持续时间很短。 看上去像数据库抖了一下 – 原因就是MySQL在刷脏到磁盘。当内存数据和磁盘数据内容不一致的时候,这个数据被称为“脏”。内存数据写入磁盘后,内存和磁盘的数据的内容就一致了,称为“干净”。 不论脏还是干净,都存在内存里。触发数据库的刷脏时机InnoDB的redo log写满了
  脏读:了解这个之前,首先要了解什么是脏数据。 脏数据是指源系统中的数据不在给定的范围内或对于实际业务毫无意义,或是数据格式非法,以及在源系统中存在不规范的编码和含糊的业务逻辑。  脏读:在数据库技术中,脏数据在临时更新( 脏读)中产生。事务A更新了某个数据项X,但是由于某种原因,事务A出现了问题,于是要把A回滚。但是在回滚之前,另一个事务B读取了数据项X的值(A更
转载 2024-02-12 08:12:01
65阅读
文章目录一、MyBatis的延迟加载1、使用 assocation 实现延迟加载2、使用 Collection 实现延迟加载二、MyBatis缓存1、Mybatis中的一级缓存2、Mybatis中的二级缓存三、Mybatis的注解开发1、mybatis 的常用注解说明2、使用 Mybatis 注解实现基本 CRUD 一、MyBatis的延迟加载延迟加载:就是在需要用到数据时才进行加载,不需要用到
1.什么是脏、干净  当内存中和的数据和磁盘中的不一致时,称为脏;当内存中的数据和磁盘中的一致时,称为干净; 2.什么时候刷脏  内存中的脏进行写磁盘的过程称之为刷脏,刷脏的时候需要暂停所有业务更新,所以系统会产生卡顿的现象;当binlog写满的时候,需要暂停更新,刷脏;当内存不足,内存放不下的时候,需要刷脏;、当系统空闲的时候会定期刷脏;当mysql正常关闭
最近一直执迷于mysql的binlog日志刷入磁盘频率的几个参数,一直无法完全理解清楚,今天反复的看官方文档,并且将看到的心得记录一二。先说个概念:数据:当mysql的内存数据和磁盘的数据不一致的时候,内存的数据,就叫做脏数据,刷的过程就是刷脏。【关于控制binlog刷入磁盘的参数】1.sync-binlog:控制binlog刷入磁盘的频率default vaule:10:禁止MySQL
数据
原创 2023-03-15 17:23:57
721阅读
概述redis是一个缓存数据库,数据通常存放在内存中,以此做到快速读写功能。这样做的弊端就是每次机器重启或者掉线数据都会消失。通常为了解决内存数据再下次重启消失问题,主要方式就是把数据持久化到磁盘中,每次启动的时候就是磁盘数据载入内存,redis也是支持这种模式。持久化方式redis持久化数据到磁盘主要有两种方式:RDB和AOF。RDB方式是根据策略(配置文件)定时把数据持久化到磁盘;AOF方式是
转载 2024-05-31 16:48:22
315阅读
一、 redis的编译安装1、依赖的系统包yum install -y wget gcc make tcl2、下载包地址1、各个版本redis的下载地址 http://download.redis.io/releases/ 2、本文安装最新版本4.0.9 wget http://download.redis.io/releases/redis-4.0.9.tar.gz3、编译安装1、解压:tar
转载 2023-08-07 23:36:58
951阅读
一、Mysql事务概念 二、事务的四大特性ACID三、事务的隔离级别实战分析(mysql8.0版本) 四、Mysql脏读幻读不可重复读五、Mysql数据执行到步骤分析 六、Mysql RedoLog与UndoLog日志导读:本博文先讲解了mysql事务的概念,然后实际操作语句验证了事务的隔离级别,以及幻读、不可重复读等情况加深理解,最后引入了mysql数据
# Mysql机制 ## 1. 引言 Mysql是一种流行的开源关系型数据库管理系统,被广泛应用于各种应用程序中。在Mysql中,数据的持久性非常重要,因为一旦数据库服务器发生故障或崩溃,我们希望能够将数据恢复到最近的一次稳定状态。为了实现这一点,Mysql采用了一种称为"机制"的方法来确保数据的可靠性和一致性。 本文将详细介绍Mysql机制,并通过代码示例来说明每个步骤的具体
原创 2023-11-30 06:31:05
178阅读
Kafka存在丢消息的问题,消息丢失会发生在Broker,Producer和Consumer三种。BrokerBroker丢失消息是由于Kafka本身的原因造成的,kafka为了得到更高的性能和吞吐量,将数据异步批量的存储在磁盘中。消息的刷过程,为了提高性能,减少刷次数,kafka采用了批量刷的做法。即,按照一定的消息量,和时间间隔进行刷。这种机制也是由于linux操作系统决定的。将数据
业务背景在建立数仓体系过程中,采用ORC+SNAPPY存储,单分区文件大小TB级别,对比前后依赖表以及同样体量的表,只有GB级别,故对这种情况产生怀疑,进行验证        验证一、确定数据量、以及具体字段数据正常        验证二、
转载 2024-05-30 17:17:27
69阅读
### MySQL数据的详细过程 在MySQL中,数据是指将内存中的数据写入磁盘,以确保数据持久化。这个过程包括将数据从内存中刷新到磁盘文件中,并保证数据的一致性和持久性。下面我们将详细介绍MySQL数据的过程,并提供代码示例。 #### 1. 数据写入内存 当我们向MySQL数据库中插入数据时,数据首先被写入到内存中的缓冲区。MySQL使用了多种缓冲区,包括`InnoDB Bu
原创 2024-03-10 04:19:03
563阅读
https://www.cnblogs.com/DataArt/p/10229913.html
转载 2021-05-27 23:32:00
961阅读
2评论
# Redis AOF策略详解 ## 1. 引言 Redis作为一个高性能的键值存储数据库,拥有多种数据持久化策略,其中AOF(Append Only File)是最受欢迎的一种。AOF记录了所有对Redis服务器的写操作,按照顺序追加到文件中,实现了数据的持久化。本文将详细介绍Redis AOF的策略,同时通过代码示例和图表说明其工作原理。 ## 2. AOF策略 在Redi
原创 2024-08-11 04:13:28
94阅读
此文为极客时间:MySQL实战45讲的12节的学习笔记一、mysql 的刷机制而之前提到过,mysql 使用了 WAL 技术,即更新的时候先更新内存中的数据,然后必要的时候再将内存中的数据刷入磁盘。我们把内存中这些被修改过,跟磁盘中的数据不一致的数据称为脏。其中,有四种情况会触发脏的刷:redo log 可写空间满了。内存满了,需要淘汰的数据恰好是脏。系统不繁忙的时候。关闭数据库的
转载 2023-06-22 11:45:48
568阅读
  • 1
  • 2
  • 3
  • 4
  • 5