营销mm让我讲mysql日志顺序读写及数据文件随机读写原理

华为云开发者社区 华为云开发者社区     2023-03-09     416

关键词:

摘要:你知道吗,MySQL在实际工作时候的两种数据读写机制?

本文分享自华为云社区《MySQL日志顺序读写及数据文件随机读写原理》,作者:JavaEdge 。

MySQL在实际工作时候的两种数据读写机制:

  • 对redo log、binlog这种日志进行的磁盘顺序读写
  • 对表空间的磁盘文件里的数据页进行的磁盘随机读写

1 磁盘随机读

MySQL执行增删改操作时,先从表空间的磁盘文件里读数据页出来, 这就是磁盘随机读。

如下图有个磁盘文件,里面有很多数据页,可能需要在一个随机位置读取一个数据页到缓存,这就是磁盘随机读

因你要读取的这个数据页,可能在磁盘的任一位置,所以你在读取磁盘里的数据页时,只能用随机读。磁盘随机读性能极差,所以不可能每次更新数据都磁盘随机读,而是读取一个数据页之后,放到BP的缓存,下次要更新时,直接更新BP里的缓存页。

磁盘随机读的性能指标

IOPS

底层的存储系统可执行多少次磁盘读写操作/s。压测时可以观察一下。对数据库的crud操作的QPS影响非常大,某种程度上几乎决定了你每秒能执行多少个SQL语句,底层存储的IOPS越高,你的数据库的并发能力就越高。

磁盘随机读写操作的响应延迟

也是对数据库的性能有很大的影响。

假设你的底层磁盘支持你执行200个随机读写操作/s,但每个操作是耗费10ms,还是耗费1ms,也有很大影响, 决定你对数据库执行的单个crud SQL语句的性能。

包括你磁盘日志文件的顺序读写的响应延迟,也决定DB性能,因为你写redo log日志文件越快,那你的SQL性能越高。

比如你一个SQL语句发过去,磁盘要执行随机读操作加载多个数据页,此时每个磁盘随机读响应时间50ms,可能SQL语句要执行几百ms,但若每个磁盘随机读仅耗10ms,可能你的SQL就执行100ms即可。所以核心业务的数据库的生产环境机器推荐SSD,其随机读写并发能力和响应延迟要比机械硬盘好太多,可大幅提升数据库的QPS和性能。

2 磁盘顺序读写

当你在BP的缓存页里更新数据后,必须要写条redo log日志,它就是顺序写:在一个磁盘日志文件里,一直在末尾追加日志

写redo log时,不停的在一个日志文件末尾追加日志的,这就是磁盘顺序写。

磁盘顺序写的性能很高,几乎和内存随机读写的性能差不多,尤其是在DB里也用了os cache机制,就是redo log顺序写入磁盘之前,先是进入os cache,即os管理的内存缓存。

对写磁盘日志文件,最关注

磁盘每s读写数据量的吞吐量指标

即每s可写入多少redo log日志,整体决定DB的并发能力和性能。

每s可写入磁盘100M数据和每s可写入磁盘200M数据,对数据库的并发能力影响也大。因为数据库的每次更新SQL,都涉及:

  • 多个 磁盘随机读取数据页操作
  • 一条redo log日志文件顺序写操作

点击关注,第一时间了解华为云新鲜技术~

mysql:31mysql数据库的日志顺序读写以及数据文件随机读写的原理

...时候的两种数据读写机制,一种是对redolog、binlog这种日志进行的磁盘顺序读写,一种是对表空间的磁盘文件里的数据页进行的磁盘随机读写。2.磁盘随机读写操作磁盘随机读操作MySQL在工作的时候,尤其是执行增删改... 查看详情

github标星过万!mysql绝对值

...百万级TPS?先用一张思维导图直接告诉你答案:顺序读写磁盘生产者写入数据和消费者读取数据都是顺序读写的,先来一张图直观感受一下顺序读写和随机读写的速度:从图中可以看出传统硬盘或者SSD的顺序读写... 查看详情

为啥顺序写入比 HDD 上的随机写入快

...间】:2020-08-2722:50:36【问题描述】:就像在文件尾部附加日志条目,或者就像mysql记录它的重做日志一样,人们总是说顺序写入比随机写入快得多。但为什么?我的意思是,当您在磁盘上写入数据时,寻道时间和旋转时间决定了... 查看详情

windows下如何查看磁盘io性能

...为125、顺序读计数为225。对于数据文件而言是随机读写,日志文件是顺序读写。因此,数据文件建议存放于RAID5上,而日志文件存放于RAID10或RAID1中。参考技术A打开任务管理器就可以看到了。 查看详情

mysql多层面优化总结

...的依赖非常高,较大的缓冲池可以有效提高读写性能mysql写日志是顺序io,可以借助内核缓冲提高写日志的速度;写数据是随机io,所以写数据尽量使用directio,不使用内核缓冲反而效率更高.-server和存储引擎层面优化将日志文件和数据文... 查看详情

mysqlinnodb读书笔记07mysql中各种类型文件详解(代码片段)

...参数文件作用2.参数的定义3.参数的类型4.参数的修改二、日志文件1.日志文件的分类2.errorlog3.binlog3.1开启binlog功能3.2查看binlog变化过程3.3binlog的作用3.4binlog文件和index文件3.5binlog日志流转过程3.6其他重要参数4.slowquerylog4.1开启slowlo... 查看详情

mysql主从复制及读写分离实际部署与验证(代码片段)

...分离测试:三、总结:1.主从复制里三个线程两个日志2.读写分离优点前言:在现网生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性还是高并发等各个方面都是... 查看详情

读写分离及主从复制

...步到从服务器上二、实现原理:  a) MySQL中有一个日志bin日志(也叫二进制日志),此日志记录了所有操作数据库的的sql语句  b) 主从复制原理实际上是多台服务器都开启了bin日志,然后主服务器会把执行过的sql语句... 查看详情

logstructuredmergetrees(lsm)

...存放数据,B+树是一个随机读写的数据结构。我们知道,顺序读写要比随机读写快无数倍,所以需要把数据结构改成顺序读写。 3     应用场景LSM是当前被用在许多产品的文件结构策略:HBase,Cassandra,LevelDB,SQL... 查看详情

随机读写与顺序读写怎么去理解

...程导致结果不尽人意。一起认识下关于磁盘的读写原理和顺序读写,随机读写。首先磁盘是如何存储数据的?信息存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面... 查看详情

mysql常用命令及参数说明

参考技术Async-binlog=0:关闭通过MySQL服务器将二进制日志刷入磁盘,MySQL服务器依赖于操作系统每秒将二进制日志刷新到磁盘。这个设置提供了最好的性能,但是当碰到断电或系统崩溃的时候,可能会造成服务器提交的事务没有被... 查看详情

kafka为啥读写数据效率这么高?

...该文件夹下存储这个Partition的所有消息和索引文件。每个日志文件都是一个logentrie序列,每个logentrie包含一个4字节整型数值(值为N+5),1个字节的"magicvalue",4个字节的CRC校验码,其后跟N个字节的消息体。每条消息都有一个当... 查看详情

kafka基础:高效读写数据

1)顺序写磁盘Kafka的producer生产数据,要写入到log文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁盘,顺序写能到600M/s,而随机写只有100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为... 查看详情

mysql基础知识梳理学习----innodb日志相关的几个要点

...操作中,它保存了对InnoDB表中数据的修改记录,所以也叫日志文件。2.日志文件内部也是按照大小相等的页面切割,页面大小为512个字节(回顾下数据页是多大?)。考虑到机械硬盘的块大小也是512字节,所以日志块也是如此设... 查看详情

kafka速度分析(代码片段)

...求,超过了大部分的消息中间件,这种特性也使得Kafka在日志处理等海量数据场景广泛应用。为什么写入速度快?Kafka会把收到的消息都写入到硬盘中,它绝对不会丢失数据。为了优化写入速度Kafka采用了两个技术,顺序写入和MMF... 查看详情

安装lnmp时如何修改数据库数据存储地址及默认访问地址

...t/phpmyadmin/ 默认网站目录:/home/wwwroot/default/前几天领导让我们装了一个centos的服务器,然后让我装了一下lnmp环境,安装完后,今天领导和我说让我改下mysql的数据存储地址和默认访问地址,这里我总结了两种方法:一:安装安... 查看详情

linux——mysql主从复制读写分离

...致性和完整性 主从复制原理:主MySQL需要开启二进制日志保存用户对Mysql数据的操作。   从数据库监听主MySQL日志变化,发现更新复制日志到本地,读取复制到本地的日志,执行日志对数据库的操作,保证主和从数据库... 查看详情

mysql日志没在控制台打印log

mysql日志没在控制台打印log!更改my.cnf配置文件[root@git-server~]#grepgeneral_log/etc/my.cnfgeneral_log=1general_log_file=在mysql命令控制台操作需要root用户才有访问此文件的权限默认这个日志是被关闭掉的。mysql>showglobalvariableslike'%general%... 查看详情