日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法

發布時間:2024/10/5 数据库 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

日志型應用的一個典型操作,是周期性地有大量的insert操作。這類操作需要對擴展表空間。

分析

在InnoDB里,擴展表空間的操作是在語句執行過程中,由執行線程直接調用的。

尤其是對于一些表每行比較大,則會出現每插入幾條記錄就需要擴展表空間。

雖然有insert buffer和write ahead logging策略保證在執行線程中不直接操作表數據文件,但擴展表空間的操作會導致更新的tps出現瞬間低點。現象如下圖。實際上整體TPS也受此影響。

改進方案及可行性

可以在這類大操作之前預分配表空間來優化這個問題。我們的業務上線之前都有容量預估,每天也有監控。因此接下來一段時間表空間增長到多少,是能夠預估得到。

在實際更新開始之前,在低峰期甚至是提供服務之前就將表空間預分配好,能夠避免這種抖動和提高TPS。

工具驗證

InnoDB的表空間結構上,空間頭部有4個byte的數字N表示這個表空間的大小(page數目),文件的實際大小是N*Page_SIZE.

實現了一個工具extend_space,修改4個byte并將文件append到指定的大小。測試發現insert性能提升10%。由這個原因引起的抖動消除。

后續

目前還只是用工具實現。工具使用起來比較麻煩,主要是更新過程中的鎖表操作就需要外部腳本,而且以后應用的新版本中page_size可變,因此比較優美的方案是將這個功能加入到MySQL支持的命令中。

補充更新

新增MySQL命令支持預擴展

效果如圖

總結

以上是生活随笔為你收集整理的mysql整点抖动_MySQL 5.5 大量数据插入出现的抖动问题 及 解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。