首頁 > IT業界 > 正文

華為云MySQL新增“邏輯預讀”特性,高效提升分析型業務的執行效率

2019-11-29 16:56:31  來源:?;?/p>

摘要:隨著用戶對數據訪問速度的日益重視,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。

 

image.png

 

 

對于在線應用來說,重建表會產生較大的運維風險,數據面臨丟失的可能。那到底有沒有什么特性可以在不重建表的情況下,彌補線性預讀失效的問題呢?

線性預讀的失效催生出“邏輯預讀”特性

華為云RDS數據庫服務,新開發了“邏輯預讀”特性,在不重建表的情況下,彌補線性預讀失效的問題,從而提高分析型業務的執行效率。

 

image.png

 

 

“邏輯預讀”特性,在預讀數據的時候,首先通過對要預讀的數據的頁號進行排序,去除數據不連續的影響,然后合并相鄰數據頁的IO請求,減少磁盤IO的總請求次數,從而提高數據預讀的命中率和效率。

 

image.png

 

 

華為云數據庫團隊做了一個測試:采用8核16GB 100GB SSD規格的Linux機器,測試2.4GB大小500w Rows存在碎片的數據,執行select *from tablename(全表掃描查詢),結果如下:

 

image.png

 

 

由此可見,相比開源版本,華為云MySQL邏輯預讀特性大大縮短了訪問時長,極大提升了執行效率,為分析型業務的進一步發展注入了新動力。

每一個改變都是為了更好的服務客戶,華為云MySQL邏輯預讀特性的推出,不僅很好地彌補了線性預讀的失效問題,提升了分析型業務的執行效率,更是為客戶的業務場景保駕護航,助力其創新發展,實現更多價值。

更多詳情了解,敬請前往華為云官網:產品——基礎服務——數據庫。

 

第二十九屆CIO班招生
法國布雷斯特商學院MBA班招生
法國布雷斯特商學院碩士班招生
法國布雷斯特商學院DBA班招生
責編:chenjian
博盈彩票网址 科乐吉林麻将 下载 表面光鲜不赚钱行业 未来安徽麻将作弊器 拼多多好难赚钱 写球评能赚钱吗 天天捕鱼最新版应用 下载消消麻将赚钱 六福彩票网址 发布搞笑视频怎么赚钱 腾讯欢乐麻将下载安装 种黏玉米赚钱吗 送彩金捕鱼网站 怎么用美团赚钱 69天宫怎么赚钱 财神捕鱼有时间段吗