MySQL预读失效_华为云MySQL新增“逻辑预读”特性,轻松解决线性预读失效问题...

随着用户对数据访问速度的日益重视,MySQL数据库在最初的设计中,采用了线性预读的方式,提前将即将使用的数据预读到Buffer pool中,来提升数据的访问速度,但在实际使用过程中,线性预读失效的问题愈来愈突出。

对于存在时间比较长,变更又比较频繁,除非我们对于这张表进行重建,否则该表会存在大量的数据碎片,导致数据存放不连续,这样会使MySQL原有的线性预读功能失效,导致某些查询语句变很慢,如:全表扫描,范围扫描等。

频繁变更操作会破坏数据的连续性

一般情况下,当我们在数据存放连续时执行全表扫描,数据库就会异步地把这些数据从磁盘加载到Buffer pool,从而提高数据库的处理速度。比如当我们访问了Row A1,Row A2,Row A3时,数据库会认为你下次有极大的概率去访问Row A4,Row A5,Row A6,从而自动异步地把这些数据加载到Buffer pool中。

但如果在这张表上频繁地执行变更操作,则会破坏数据的连续性。在我们访问Row A1,Row A2,Row A3时,数据库发现这三行数据并不连续,所以数据库不会提前将Row A5,Row A6从磁盘异步地加载到Buffer pool,只能一个一个的去请求、加载,从而影响访问效率。数据连续时,访问500w Row数据需要12s,但是数据不连续时,访问500w Row数据需要34s。

20191129054605784.png

对于在线应用来说,重建表会产生较大的运维风险,数据面临丢失的可能。那到底有没有什么特性可以在不重建表的情况下,弥补线性预读失效的问题呢?

线性预读的失效催生出“逻辑预读”特性

华为云RDS数据库服务,新开发了“逻辑预读”特性,在不重建表的情况下,弥补线性预读失效的问题,从而提高分析型业务的执行效率。

20191129054606551.png

“逻辑预读”特性,在预读数据的时候,首先通过对要预读的数据的页号进行排序,去除数据不连续的影响,然后合并相邻数据页的IO请求,减少磁盘IO的总请求次数,从而提高数据预读的命中率和效率。

20191129054606690.png

华为云数据库团队做了一个测试:采用8核16GB 100GB SSD规格的Linux机器,测试2.4GB大小500w Rows存在碎片的数据,执行select *from tablename(全表扫描查询),结果如下:

20191129054606235.png

由此可见,相比开源版本,华为云MySQL逻辑预读特性大大缩短了访问时长,极大提升了执行效率,为分析型业务的进一步发展注入了新动力。

每一个改变都是为了更好的服务客户,华为云MySQL逻辑预读特性的推出,不仅很好地弥补了线性预读的失效问题,提升了分析型业务的执行效率,更是为客户的业务场景保驾护航,助力其创新发展,实现更多价值。

更多详情了解,敬请前往华为云官网:产品——基础服务——数据库。

(本内容属于网络转载,文中涉及图片等内容如有侵权,请联系编辑删除)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql交叉连接插入_25.MySQL中的交叉连接CROSS JOIN

1.简介交叉连接返回的结果是被连接的两个表中所有数据行的笛卡尔积。需要注意的是,交叉连接产生的结果是笛卡尔积,并没有实际应用的意义。例如,班级表中有3个字段,4条记录,学生表中有5个字段,10条记录&…

Mac下的Parallel Windows忘记密码怎么办?

由于工作或是生活,在国内的环境下我们总有些时候要用到Windows才能完成某些任务,对于不经常使用Windows的用户,相信在虚拟机上安装一个Windows是不错的选择。小编就使用了Paralles Desktop安装了 Win 7 系统。但是在使用过程中由于不知道是Wi…

我想自学Linux,需要从哪些方面学起

各位大哥,我想我想自学Linux,需要怎么学起,怎么更快上手,谢谢指导转载于:https://blog.51cto.com/allenxiao/83768

Unity shader学习之Grab Pass实现玻璃效果

GrabPass可将当前屏幕的图像绘制在一张纹理中,可用来实现玻璃效果。 转载请注明出处:http://www.cnblogs.com/jietian331/p/7201324.html shader如下: // Upgrade NOTE: replaced mul(UNITY_MATRIX_MVP,*) with UnityObjectToClipPos(*)Shade…

ef core mysql 生成迁移失败_EFCore + MySql codeFirst 迁移 Migration出现的问题

第二次使用Migration update-database的时候出现以下错误:System.NotImplementedException: The method or operation is not implemented. at Microsoft.EntityFrameworkCore.Migrations.MigrationsSqlGenerator.Generate(RenameColumnOperation operation, IModel…

盖茨的背后:坚持到最后一分钟

微软董事长比尔•盖茨(Bill Gates)退休了,离开了他一手创办的微软公司。近期有关盖茨退休并将其580亿美元的财富用于慈善事业成了业内议论和关注的焦点。有的表示敬重,有的表示怀疑,有的甚至为人家盖茨这580亿美元怎么花做了详细的规划&#…

mysql架构 视频_企业常见MySQL架构应用实战(高可用集群系统+调优经验)视频课程...

第一章 MySQL企业常用架构应用实战(主从复制性能调优)1、企业级MySQL发行版Percona Server、MariaDB选型2、常用MYSQL性能调优策略之系统级别调优(1)3、常用MYSQL性能调优策略之系统级别调优(2)4、常用MYSQL性能调优策略之MySQL参数调优(1)5、常用MYSQL性能调优策略之MySQL参数…

Rsync:一个很实用的文件同步命令

rsync是Linux系统下的文件同步和数据传输工具,可用于同步文件、代码发布 1.安装. yum insatll -y rsync 2.配置 打开rsync功能vim /etc/xinetd.d/rsync service rsync {disable no #把yes改成noflags IPv6socket_type streamwait n…

spring整合dubbo和springboot整合dubbo,实现服务暴露区别

spring整合dubbo的时候实现服务暴露是这么做的,在xml里配置 那么springboot整合dubbo的时候,是通过dubbo的Service 注解实现的 之前我们是通过Autowired注入一个接口 现在我们通过Reference注解引用接口

0day的NFO文件名的含义大全

0day的NFO文件名的含义大全 文章作者:不知道信息来源:网络Incl.Keygen  包含有注册器 keygen only  只含注册器 WinALL  适用于所有版本Windows操作系统(一般是指95 98 ME 2000 XP 2003) Trainer  密技 Cracked  破解版本&#xff…

mysql 查询超过60分钟的_mysql基础级《简单查询》60分钟搞定

初学者,推荐大家使用----emp(雇员信息表)和dept(部门表),这两张表的字段及数据内容都设计的比较经典。来吧!先跟着我的操作,导入我提供的数据库脚本。导入两张表sql脚本到数据库create database testdb;use testdb;drop table if …

数据结构1-树及常用算法

(一)将数据库存储结构转化为内存树型结构算法 树节点定义public class TNode {public string id { get; set; }public string pid { get; set; }public string name { get; set; }public string flag { get; set; } }树定义public class Tree {TNode nod…

Error(6,35)java: 程序包 不存在,解决办法

spring boot项目,运行就提示找不到程序包,执行了maven clean install,maven依赖没有标红,但启动就报错 解决办法 检查maven依赖是否成功导入 根据报错信息,检查本地仓库是否有jar,有些jar包不会自动导入&a…

再学 GDI+[91]: TGPImage(11) - 转灰度图像

本例效果图:代码文件:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 class(TForm)CheckBox1: TCheckBox;procedure FormCreate(Sender: TObject);procedure FormPaint(Sender: TObject);…

mysql下一个版本号_mysql下一个版本应该且实现并不复杂增加的常用功能

1、innodb的auto_increment应该在参考oracle的实现方式,定期持久化(mysql 8.0支持,mariadb 10.3支持序列);我们目前遇到个问题,出于性能考虑,我们每天会把当天处理完成的数据归到另外一张历史表,并清空&…

GUI阅读字号和触点面积设计 (可用性设计)

今天在博客园开启第一篇,附上我多年工作的研究总结以表诚意。 此文已收入UXPA大会文集,出版于四川大学出版社。 《GUI阅读字号和触点面积设计》 --可用性设计理论研究与实践案例 作者刘玲 前华为UCD中心交付经理 277169188qq.com 摘要: 本文演绎论证了当…

visual studio2008 OpenGL开发配置

visual studio2008发布已经很久了,但是Google了一下却没有多少篇文章讲关于配置OpenGL环境的,强大的visual studio2008已经非常人性化了,比起其他开发工具来说,visual studio2008的OpenGL配置实在太简单了,下面就setp …

postman mysql_postman连接mysql执行操作

postman也可以连接mysql目录1、安装2、启动服务3、执行sql语句1、安装想要postman连接mysql,需要安装xmysql,启动该服务,然后才可以调用。预置条件:完成nodejs和npm的安装安装xmsql:npm install -g xmysql2、启动服务启…