低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

华为云 MySQL 新增“逻辑预读”特性,高效提升分析型业务的执行效率

2019 年 12 月 16 日

华为云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。



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


线性预读的失效催生出

“逻辑预读”特性

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



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



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



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


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


本文转载自 HW 云数据库公众号。


原文链接:https://mp.weixin.qq.com/s/38Yc3K2jOODgyKLP8D3siA


2019 年 12 月 16 日 15:53227

评论

发布
暂无评论
发现更多内容

站出来打造真正开源的 Elasticsearch

亚马逊云科技 (Amazon Web Services)

利益相关者的问题

沈弋

产品经理训练营 Week3 作业

Mai

产品经理训练营第三周作业 - 利益相关方(二)

Denny-xi

产品经理 产品经理训练营

产品训练营第三周作业-利益相关者关注的问题

jpcr987i

产品训练营作业:2、产品意思和产品思维 (2)

Geek_06d2e5

入网指南:一文读懂你身边的网络

驱动力读书笔记之二

张老蔫

28天写作

速成算法笔记,Github上已收获近60K+star!力压LeetCode只为面试

云流

程序员 面试 算法

给予你关注产品的利益相关者,想想他们的问题,自己设定一些前提,做个简单的排序。

戎帅

集群迁移自由来啦!4步将Rancher迁移至任意K8S发行版

RancherLabs

一带一路上的中国品牌!AWS 助力中国新能源车企走向世界!

亚马逊云科技 (Amazon Web Services)

作业:游戏的利益相关者

嫉妒的耗子

第三周作业-相关方分析

Au revoir

K8S原生存储持续进化,Longhorn 1.1迎来ARM支持

RancherLabs

话题讨论 | 工作之外的时间怎样分配

程序员架构进阶

时间分配 自我提升 话题讨论 2月春节不断更

极客时间产品经理训练营第 3 次作业

待注册

极客大学产品经理训练营

产品经理训练营第二章作业(二)

新盛

产品经理第三周作业

朱琴

作业 - 第二章 产品思维和产品意识 (二)

hao hao

批判性思维自修课(七)

石君

28天写作 批判性思维

产品手记--2

曦语

大数据两万年

大伟

大数据 GFS

🍉 别再恐惧 IP 协议(万字长文 | 多图预警)

飞天小牛肉

面试 计算机网络 IP TCP/IP 2月春节不断更

CSS(十二)——用CSS设置列表样式

程序员的时光

七日更 28天写作 2月春节不断更

Elastic开源协议修改限制用户,星环科技自研New Search青出于蓝

星环科技

产品训练营·第三周作业

产品经理训练营

《期权合同》常见的一个大坑,99%中招 | 视频号28天(26)

赵新龙

28天写作

学计算机的都是傻子?《打工人的点点思考》

谙忆

产品训练营 第三周作业

万顷湖天碧

产品训练营

CSS(十一)——用CSS设置超链接样式

程序员的时光

七日更 28天写作 2月春节不断更

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

华为云MySQL新增“逻辑预读”特性,高效提升分析型业务的执行效率-InfoQ