专业的信息化与通信融合产品选型平台及垂直门户
注册 登陆 设为首页 加入收藏
首页 企业新闻 招标信息 行业应用 厂商专区 活动 商城 中标信息

资讯
中心

新闻中心 人物观点
厂商专区 市场分析
行业
应用
政府机构 能源产业 金融机构
教育科研 医疗卫生 交通运输
应用
分类
统一协作 呼叫客服 IP语音 视频会议 智能管理 数据库
数字监控 信息安全 IP储存 移动应用 云计算 物联网

TOP

华为云MySQL新增“逻辑预读”特性,高效提升分析型业务的执行效率
2019-12-02 13:05:57 来源:厂商供稿 作者:【
关键词:华为云
 
随着用户对数据访问速度的日益重视,MySQL数据库在最初的设计中,采用了线性预读的方式,提前将即将使用的数据预读到Buffer pool中,来提升数据的访问速度,但在实际使用过程中,线性预读失效的问题愈来愈突出。

  随着用户对数据访问速度的日益重视,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逻辑预读特性的推出,不仅很好地弥补了线性预读的失效问题,提升了分析型业务的执行效率,更是为客户的业务场景保驾护航,助力其创新发展,实现更多价值。

      

责任编辑:admin

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部

上一篇华为与鹏城实验室共建鹏城云脑Ⅱ ..
下一篇中兴通讯召开2019渠道服务大会

热门文章

图片主题

最新文章

相关文章

广告位


Copyright@2003-2009 网络通信中国(原VoIP中国) 版权所有
  全国服务电话:010-69397252
  京ICP备05067673号-1 京公网安1101111101259