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

  • 时间:
  • 浏览:0

随着用户对数据访问传输时延的日益重视,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,能够能 有另另有4个有另另有4个的去请求、加载,从而影响访问传输时延。数据连续时,访问5000w Row数据时要12s,怎么让数据不连续时,访问5000w Row数据时要34s。

       对于在线应用来说,重建表会产生较大的运维风险,数据面临丢失的怎么让。那到底有没有那些社会形态都时要在不重建表的情况汇报下,弥补线性预读失效的难题呢?

线性预读的失效催生出“逻辑预读”社会形态

华为云RDS数据库服务,新开发了“逻辑预读”社会形态,在不重建表的情况汇报下,弥补线性预读失效的难题,从而提高分析型业务的执行传输时延。

       “逻辑预读”社会形态,在预读数据的而是,首先通过对要预读的数据的页号进行排序,去除数据不连续的影响,怎么让合并相邻数据页的IO请求,减少磁盘IO的总请求次数,从而提高数据预读的命中率和传输时延。

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

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

每有另另有4个改变也有为了更好的服务客户,华为云MySQL逻辑预读社会形态的推出,不仅很好地弥补了线性预读的失效难题,提升了分析型业务的执行传输时延,更是为客户的业务场景保驾护航,助力其创新发展,实现更多价值。

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

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