成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

MySQL 表空間碎片的概念及相關問題解決

瀏覽:3日期:2023-10-03 14:44:00
背景

經常使用 MySQL 的話,會發現 MySQL 數據文件的磁盤空間一般會不停的增長,而且有時候刪了數據或者插入一批數據的時候,磁盤空間有時候還會毫無變化。引發這個其妙現象的就是 MySQL 的表空間碎片。

什么是表空間碎片?

表空間碎片指的是表空間中存在碎片,形象一點來比喻的話,就像是一張 A4 紙,“表空間碎片”就像是把這張 A4 紙撕碎,再重新拼起來,各個碎片之間都會有一些縫隙存在,這些縫隙就是“表空間碎片”。重新拼起來的碎片實際上會比完整的 A4 紙大上一圈,這也代表著表空間容易引發的問題:空間浪費。

對于背景中描述的現象,可以用一張圖來進行解釋:

MySQL 表空間碎片的概念及相關問題解決

圖中的數字代表真實的數據行,圓角矩形代表一個表的表空間。從左往右,第一次操作是刪除數據,由于 MySQL 在設計上是不會主動釋放空間的,因此當表中的數據行被刪除時,雖然數據被“刪除”了,但是實際上這部分空間是沒有釋放的,依舊會被 Table A 占用,因此也就出現了這樣子的情景:刪除了日志表的很多數據,但是 MySQL 的磁盤空間并沒有降低。

PS:這種不釋放空間的設計多半和惰性刪除有關,早期設計數據庫時,使用的 IO 設備一般是機械盤,讀寫性能比 SSD 差很多,所以刪除操作一般不會直接觸發磁盤上的數據刪除。

可以看到數據刪除之后,原本連續的空間中出現了兩個空白的區域,這種一般就叫做表空間空洞,空洞太多了就叫做表空間碎片化(對應的是表空間連續)。這部分的空間雖然不會釋放,但是會被標記為可重復利用,參考最右邊的表空間示意圖(第三個圓角矩形),當新插入數據的時候新數據會重新寫入到表空間空洞中,這也代表著:在大規模刪除過數據的表上,寫入數據時,表空間可能不會明顯增長或者不會增長。

實際上產生表空間空洞的操作并不只有 delete,update 也會引起這個問題,比如在 varchar 這種變長的字符型列中修改數據,改短一些的時候就會出現非常小的空洞,改長的話就有可能會因為空間不足導致把數據行的一些數據遷移到其他地方去。

怎么查看表空間碎片

MySQL 的系統表記錄了表空間的使用情況,可以用如下查詢檢查:

SELECT CONCAT(table_schema,’.’,table_name) AS ’table_name’,table_rows AS ’Number of Rows’,CONCAT(ROUND(data_length/(1024*1024),2),’ M’) AS ’data_size’,CONCAT(ROUND(index_length/(1024*1024),2),’ M’) AS ’index_size’ ,CONCAT(ROUND(data_free/(1024*1024),2),’ M’) AS’data_free’,CONCAT(ROUND(data_free/data_length,2),’ %’) AS ’data_free_pct’,ENGINE as ’engine’FROM information_schema.TABLESWHERE table_schema = ’tablename’ ORDER by data_free desc;

data_free 指表空間碎片的總空間大小,data_free_pct 指這個表的碎片百分比,效果如下:

mysql> SELECT CONCAT(table_schema,’.’,table_name) AS ’table_name’, -> table_rows AS ’Number of Rows’, -> CONCAT(ROUND(data_length/(1024*1024),2),’ M’) AS ’data_size’, -> CONCAT(ROUND(index_length/(1024*1024),2),’ M’) AS ’index_size’ , -> CONCAT(ROUND(data_free/(1024*1024),2),’ M’) AS’data_free’, -> CONCAT(ROUND(data_free/data_length,2),’ %’) AS ’data_free_pct’, -> ENGINE as ’engine’ -> FROM information_schema.TABLES -> WHERE table_schema = ’sbtest’ -> ORDER by data_free desc;+----------------+----------------+-----------+------------+-----------+---------------+--------+| table_name | Number of Rows | data_size | index_size | data_free | data_free_pct | engine |+----------------+----------------+-----------+------------+-----------+---------------+--------+| sbtest.sbtest5 | 0 | 0.02 M | 0.00 M | 44.00 M | 2816.00 % | InnoDB || sbtest.sbtest4 | 986400 | 214.70 M | 15.52 M | 4.00 M | 0.02 %| InnoDB || sbtest.sbtest3 | 986400 | 214.70 M | 15.52 M | 4.00 M | 0.02 %| InnoDB || sbtest.sbtest2 | 986400 | 214.70 M | 15.52 M | 4.00 M | 0.02 %| InnoDB || sbtest.sbtest1 | 987400 | 199.70 M | 15.52 M | 4.00 M | 0.02 %| InnoDB |+----------------+----------------+-----------+------------+-----------+---------------+--------+5 rows in set (0.00 sec)

第一行數據是測試用的數據,表中的所有數據都被刪掉了,因此計算出來的 data_free_pct 超過了 100%。

怎么解決表空間碎片問題

目前,能夠回收表空間的辦法僅有一個,就是重建表,手段包括但不限于 optimize,alter table 等。alter table 的有些操作只能靠 rebuild 表來完成,所以有時候對大表進行一些維護操作之后,也會看到磁盤空間使用率下降,這就是回收了表空間碎片騰出來的那一部分空間。

從一般經驗來看,表空間碎片的回收操作不建議經常執行,每個月一次就足夠了,因為 rebuild 表對服務器的資源影響會比較大,且會影響這個表的寫入操作。碎片率(data_free_pct)低于 20% 的時候也不用特別在意,除非磁盤空間非常緊張,且日志基本被清空。

對于回收空間的問題

對一些日志表,或者是有區域性特征的表,建議使用 MySQL 的分區表來管理,需要清理一批數據的時候,可以用 partition truncate 的方式進行清理,磁盤空間也能直接釋放掉。

以上就是MySQL 表空間碎片的概念及相關問題解決的詳細內容,更多關于MySQL 表空間碎片的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
91麻豆免费观看| 一区二区三区日本| 亚洲乱码日产精品bd| 欧美一区亚洲二区| 日韩精品一区二区三区四区| 国产麻豆精品在线| 欧美麻豆精品久久久久久| 麻豆国产欧美一区二区三区| 在线观看亚洲专区| 蜜桃视频一区二区三区在线观看| 久久综合影音| 亚洲欧美国产77777| 亚洲第一网站| 亚洲欧美国产三级| 在线一区视频| 亚洲妇女屁股眼交7| 玖玖国产精品视频| 蜜臀av性久久久久蜜臀av麻豆 | 玖玖精品视频| 日韩高清欧美激情| 欧美日韩一区三区| 懂色av一区二区夜夜嗨| 26uuu国产在线精品一区二区| www.日韩av| 欧美国产精品中文字幕| 欧美ab在线视频| 国产精品久久久久久户外露出| 红桃视频国产一区| 亚洲欧美aⅴ...| 在线综合欧美| 午夜免费欧美电影| 欧美在线啊v一区| 国产精品99久久久久久宅男| 日韩视频免费观看高清完整版在线观看 | 欧美性生活大片视频| 久久精品久久综合| 91精品国产一区二区| a级精品国产片在线观看| 国产日本欧美一区二区| 亚洲激情不卡| 免费成人在线视频观看| 欧美精品日韩综合在线| 99热精品一区二区| 最新成人av在线| 久久久人人人| 国产乱人伦精品一区二区在线观看 | 日韩精品1区2区3区| 欧美三日本三级三级在线播放| 国产在线精品国自产拍免费| 久久蜜桃av一区精品变态类天堂 | 亚洲经典自拍| 婷婷丁香激情综合| 欧美久久久影院| 91免费看片在线观看| 亚洲精品ww久久久久久p站| 一本一道久久a久久精品| 久久精品av麻豆的观看方式| 精品国产成人系列| 99精品福利视频| 久久国产麻豆精品| 久久天天做天天爱综合色| 亚洲激情av| 蜜臀91精品一区二区三区 | 3d动漫精品啪啪1区2区免费| 97久久精品人人澡人人爽| 日韩美女视频一区| 欧美性色综合网| 91在线无精精品入口| 亚洲人成亚洲人成在线观看图片| 久久一区精品| 成人小视频免费在线观看| 亚洲蜜臀av乱码久久精品| 欧美自拍偷拍一区| 色综合中文字幕国产| 国产欧美一区二区精品忘忧草| 亚洲看片网站| 精品午夜久久福利影院| 久久久夜色精品亚洲| 亚洲欧美卡通另类91av| 粉嫩久久99精品久久久久久夜 | 欧美变态tickling挠脚心| 国产精品激情| 免费人成在线不卡| 国产视频一区在线观看| 一本一本久久a久久精品综合麻豆| 国产成人超碰人人澡人人澡| 一区二区三区精品| 精品三级在线观看| 久久婷婷影院| 欧美sm重口味系列视频在线观看| 日本欧美在线观看| 国产精品三级av在线播放| 欧美日韩久久一区| 9国产精品视频| 成人免费观看av| 丝袜美腿亚洲色图| 亚洲国产精品v| 欧美图片一区二区三区| 亚洲夫妻自拍| 国产.欧美.日韩| 午夜欧美2019年伦理| 国产欧美一区二区精品性色 | 亚洲精品国产品国语在线app| 日韩欧美自拍偷拍| 久久九九国产| 午夜精品视频在线观看一区二区| 免费三级欧美电影| 亚洲视频在线一区| 精品少妇一区二区三区免费观看 | 亚洲三级在线观看| 日韩精品一区二区三区四区| 久久亚洲免费| 激情综合视频| www.色综合.com| 久久99国产乱子伦精品免费| 亚洲精品视频在线看| 久久看人人爽人人| 欧美一卡二卡在线观看| 欧美亚洲色图校园春色| 黄色一区二区三区四区| av电影一区二区| 久久精品免费观看| 亚洲成人av一区| 亚洲国产成人一区二区三区| 69堂国产成人免费视频| 久久免费99精品久久久久久| 欧美三级小说| 成人免费电影视频| 激情综合网激情| 天天综合天天综合色| 亚洲欧美电影一区二区| 国产人成亚洲第一网站在线播放| 欧美一区二区在线视频| 欧美在线观看一二区| 亚洲欧美国产精品桃花| 99精品久久久| 欧美日韩一区二区三| 不卡视频一二三| 国精产品一区一区三区mba桃花| 亚洲高清免费观看高清完整版在线观看| 国产精品拍天天在线| 久久精品一区二区三区av| 日韩免费成人网| 欧美肥妇毛茸茸| 91久久国产最好的精华液| 亚洲免费影视| 亚洲少妇自拍| 亚洲国产1区| 永久域名在线精品| 欧美日韩亚洲在线| 欧美日韩视频一区二区三区| 成人一区二区三区视频在线观看| 激情综合亚洲精品| 久久国产日韩欧美精品| 男男gaygay亚洲| 日韩影院在线观看| 亚洲高清不卡在线| 亚洲亚洲精品在线观看| 一区二区三区四区视频精品免费| 国产精品久久久久久久久免费桃花 | 国内精品久久久久久久97牛牛 | 色综合一区二区| 不卡一区在线观看| 成人精品一区二区三区中文字幕 | 国产精品美女| 亚洲一区欧美二区| 国产区二精品视| 亚洲一区二区三区免费观看| 国产伦精品一区二区三区视频孕妇| 亚洲人成人一区二区三区| 91久久久久| 中日韩视频在线观看| 在线亚洲精品| 亚洲黑丝一区二区| 99精品国产福利在线观看免费 | 国产一区二区三区久久| 99国产精品私拍| 国产精品久久久一区二区| 国产欧美日韩一级| 香蕉免费一区二区三区在线观看| 久久精品亚洲| 欧洲av在线精品| 欧美精品三级在线观看| 欧美大片在线观看| 国产午夜精品一区二区三区四区| 中文字幕第一页久久| 国产精品午夜春色av| 中文字幕字幕中文在线中不卡视频| 国产精品久久久久久久久晋中 | 亚洲国产精品久久久久久女王 | 99精品国产99久久久久久福利| 国产精品美女xx| 在线亚洲欧美专区二区| 欧洲精品一区二区| 日韩一区二区三区四区五区六区| 精品少妇一区二区三区在线播放| 日本一区二区成人| 亚洲精品老司机| 免费观看久久久4p| 成人黄色国产精品网站大全在线免费观看|