【msyql 】占用硬盤太大 ,那些文件可以清理

從目錄內容來看,這臺 MySQL 服務器上主要是 xxl-job 調度平臺的數據庫。占用空間最大的是:

24G xxl_job_log.ibd

這個文件是 xxl-job 的任務執行日志表,隨著時間推移,日志量會非常大。

可以清理的文件和方法

1.?清理 xxl_job_log 表數據(重點)

這是你可以安全清理的部分。不要直接刪除 .ibd 文件,否則會導致數據庫損壞。應通過 SQL 命令清理。

? 清理步驟:

登錄 MySQL:

mysql -u root -p

切換到對應數據庫(假設庫名是 job):

USE jobslink_job;

查看日志表總行數:

SELECT COUNT(*) FROM xxl_job_log;

清理 3 個月前的日志(示例):

DELETE FROM xxl_job_log WHERE trigger_time < NOW() - INTERVAL 3 MONTH;

清理后,InnoDB 不會自動釋放磁盤空間,需要執行:

OPTIMIZE TABLE xxl_job_log;

?? 注意:OPTIMIZE 會鎖表,建議在業務低峰期執行。

知識補充

詳細解釋一下?OPTIMIZE TABLE xxl_job_log;?的作用、原理和注意事項。

核心作用

OPTIMIZE TABLE?的主要作用是重建表,并回收因數據刪除或更新而產生的“碎片空間”,從而減少表的物理存儲空間并提高I/O效率。

把它想象成對數據庫表進行一次“碎片整理”和“壓縮”。

詳細解釋

1. 回收空間 (主要針對你的場景)
  • 你做了什么:你執行了?DELETE FROM xxl_job_log WHERE ...?語句刪除了大量歷史數據。

  • 發生了什么:InnoDB 存儲引擎在刪除數據時,并不會立即將磁盤空間釋放回操作系統,而只是將其標記為“可重用”。這意味著,雖然邏輯上數據沒了,但物理文件(xxl_job_log.ibd)的大小在操作系統層面并不會縮小。

  • OPTIMIZE TABLE 如何解決:這個命令會重建表(相當于創建一張新表,將舊表的數據復制過去,然后刪除舊表,重命名新表)。在這個過程中,所有被標記為“可重用”的空白空間會被舍棄,從而使物理文件變小,并將空間歸還給操作系統。這就是解決你24GB文件過大的直接方法。

2. 減少碎片
  • 產生碎片的原因:頻繁的?DELETE,?UPDATE,?INSERT?操作會導致數據存儲變得不連續,產生碎片。

  • 碎片的壞處

    • 空間浪費:如上所述。

    • 性能下降:數據庫引擎需要訪問更多的隨機磁盤塊來讀取數據,降低了查詢效率。

  • OPTIMIZE TABLE 如何解決:通過重建表,使數據行在物理上連續存儲,減少碎片,從而提升后續查詢的性能。

3. 更新索引統計信息
  • 在重建表的過程中,MySQL 會重新計算索引的統計信息(如基數 Cardinality)。

  • 更準確的統計信息有助于優化器為SQL查詢選擇更高效的執行計劃,從而可能提升查詢速度。

非常重要的注意事項(必讀!)

  1. 鎖表

    • 在執行?OPTIMIZE TABLE?期間,表會被鎖住(寫鎖)。這意味著在操作完成之前,任何對該表的寫入操作(INSERT, UPDATE, DELETE)都會被阻塞。讀取操作通常可以繼續。

    • 后果:會導致你的XXL-JOB調度中心在操作期間無法寫入新的日志或更新任務狀態,可能影響任務調度。

    • 建議務必在業務低峰期(例如深夜或維護窗口)進行操作

  2. 需要額外磁盤空間

    • 因為操作是新建一個表來替換舊表,所以你需要有至少等于原表大小的空閑磁盤空間。如果你的磁盤空間已經非常緊張,此操作可能會失敗。

  3. 耗時

    • 對于一個24GB的大表,這個操作可能會非常耗時(從幾分鐘到幾小時不等,取決于磁盤IO速度)。請做好心理準備,并在操作期間保持連接穩定。

  4. 對于InnoDB引擎

    • 在MySQL 5.6及以上版本,OPTIMIZE TABLE?對于InnoDB表實際上被映射為?ALTER TABLE ... FORCE,其效果等同于?ALTER TABLE ... ENGINE=InnoDB;,也就是重建表。


操作建議

對于你的情況,最標準的操作流程是:

  1. 備份:雖然不是必須,但操作前備份重要數據總是一個好習慣。

  2. 刪除數據:在低峰期,先執行?DELETE?語句刪除不需要的歷史日志。

  3. 優化表:緊接著(或在另一個更低峰的時間)執行?OPTIMIZE TABLE xxl_job_log;

  4. 驗證:完成后,使用?du -sh xxl_job_log.ibd?命令檢查文件大小,確認空間已被釋放。

替代方案
如果無法接受長時間的鎖表,可以考慮以下“曲線救國”的方法:

  1. 創建一個和?xxl_job_log?結構一樣的新表?xxl_job_log_new

  2. 將需要保留的數據從?xxl_job_log?插入到?xxl_job_log_new

  3. 重命名表,完成切換(這個過程鎖表時間極短)。

-- 1. 創建新表
CREATE TABLE xxl_job_log_new LIKE xxl_job_log;-- 2. 插入需要保留的數據 (此步驟耗時,但不會鎖住原表,影響讀寫)
INSERT INTO xxl_job_log_new SELECT * FROM xxl_job_log WHERE ...; -- 這里加上你的時間條件-- 3. 原子性切換表 (快速,鎖表時間很短)
RENAME TABLE xxl_job_log TO xxl_job_log_old, xxl_job_log_new TO xxl_job_log;-- 4. 確認新表工作正常后,刪除舊表
DROP TABLE xxl_job_log_old;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94185.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94185.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94185.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

58 C++ 現代C++編程藝術7-模板友元

C 現代C編程藝術7-模板友元 文章目錄C 現代C編程藝術7-模板友元一、基礎應用場景 &#x1f9e9;1. 模板類聲明友元函數2. 普通類聲明模板函數為友元二、模板類互訪場景 ??1. 同類模板互訪&#xff08;一對一&#xff09;2. 異類模板互訪&#xff08;多對多&#xff09;三、高…

Undertow —— JBOSS 的社區版,redhat 下場維護的開源項目,頂頂好用的 Java web server

Undertow JBoss Community Undertow Undertow is a flexible performant web server written in java, providing both blocking and non-blocking API’s based on NIO. Undertow 是一個用 Java 編寫的靈活高性能 Web 服務器&#xff0c;提供基于 NIO 的阻塞和非阻塞 API。…

【AI智能體】Dify 搭建業務單據差異核對助手實戰詳解

目錄 一、前言 二、Dify介紹 2.1 Dify 是什么 2.2 Dify 核心特性 2.2.1 Dify特點 2.2.2 Dify 多模型支持 2.2.3 Dify 適應場景 2.2.4 基于Dify 搭建發票識別應用優勢 三、Dify 搭建業務單據核對助手實戰過程 3.1 前置準備 3.1.1 安裝必要的插件 3.2 完整操作步驟 3…

Centos編譯安裝Python3.10

gcc編譯源碼包 下載python源碼包并解壓 wget https://www.python.org/ftp/python/3.10.18/Python-3.10.18.tgz tar -xf Python-3.10.18.tgz cd Python-3.10.18系統編譯依賴環境安裝 sudo yum install zlib-devel ncurses-devel gdbm-devel nss-devel openssl-devel readline-de…

Maya 3D建模 導入參考圖、鎖定參考圖

1 導入參考圖切換到 前視圖 或者 側視圖 導入 &#xff08;根據參考圖片類別去選擇&#xff09;方法1&#xff1a;視圖--圖像平面--導入圖像方法2&#xff1a;直接點 圖像平面 備注&#xff1a;誤操作導致看不到 解決辦法&#xff1a;顯示--視口 找對應的2 鎖定參考圖目的&…

基于單片機智能加濕器/空氣加濕器

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 基于單片機的智能加濕器通過集成溫濕度傳感器、控制模塊和霧化裝置&#xff0c;實現環境濕度的自…

SNDR:高精度ADC系統的綜合性能標尺

SNDR&#xff1a;高精度ADC系統的綜合性能標尺 一、SNDR的本質定義與理論基礎 信噪失真比(Signal-to-Noise-and-Distortion Ratio) 是評估ADC系統綜合性能的核心指標&#xff0c;定義為信號功率與噪聲及失真功率之和的比值&#xff1a; SNDRdB10log?10(PsignalPnoisePdistorti…

2025年滲透測試面試題總結-31(題目+回答)

安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 一、代碼審計核心思路&#xff08;261&#xff09; 二、MySQL Getshell前提&#xff08;262&#xff09; …

[創業之路-560]:機械、電氣、自控、電子、軟件、信息、通信、大數據、人工智能,上述技術演進過程

上述關鍵詞反映的技術演進過程可梳理為一條從機械執行到智能決策的遞進式發展主線&#xff0c;各技術領域在不同階段相互滲透、共同推動機器人技術從功能替代向認知革命躍遷。以下是具體演進邏輯與趨勢分析&#xff1a;一、技術演進的三階段遞進機械主導階段&#xff08;工業革…

芋道前端項目部署后刷新 404 的解決辦法(Nginx 配置教程)

很多同學在把 芋道前端項目 部署到服務器后&#xff0c;會遇到一個奇怪的問題&#xff1a; &#x1f449; 項目首頁能正常訪問&#xff0c;但一旦在瀏覽器里手動刷新某個頁面&#xff0c;就會報 404 Not Found 錯誤。 這到底是為什么呢&#xff1f;又該怎么解決呢&#xff1f;下…

更適合后端寶寶的前端三件套之HTML

文章目錄&#x1f4d5;1. HTML基礎??1.1 什么是HTML??1.2 認識HTML標簽??1.3 HTML文件基本結構??1.4 標簽層次結構&#x1f4d5;2. HTML常見標簽??2.1 標題標簽??2.2 段落標簽??2.3 換行標簽??2.4 圖片標簽??2.5 超鏈接標簽??2.6 表格標簽&#x1f4d5;3. …

【JVM內存結構系列】四、不同垃圾回收器與堆內存的適配關系:從分代GC到Region GC

在JVM內存體系中&#xff0c;堆內存的“分代結構”與“對象流轉規則”是通用基礎&#xff0c;但垃圾回收器&#xff08;GC&#xff09;是決定堆內存實際表現的核心變量——不同GC為實現“低延遲”“高吞吐量”等目標&#xff0c;會對堆的劃分方式、對象管理邏輯、參數配置規則進…

Zemax光學設計輸出3D

輸出立體數據文件&#xff08;IGES/STEP/SAT/STL 格式&#xff09;的參數設置界面&#xff0c;各參數含義如下&#xff1a;1. 起始面/終止面&#xff1a;設定要輸出立體數據對應的光學表面范圍&#xff0c;從第 0 個表面到第 9 個表面 &#xff0c;限定參與輸出的光學結構表面區…

模塊測試與低功耗模式全攻略

一、模塊測試流程在測試一個模塊時&#xff0c;建議遵循以下步驟&#xff1a;基本測試&#xff1a;測試該模塊的寄存器讀寫功能是否正常。可以向每個寄存器寫入 0x5A5A 和 0xA5A5&#xff0c;這兩種模式可以覆蓋對寄存器寫入 0 和 1 的情況。進階測試&#xff1a;在基本測試通過…

機器學習實驗三、使用決策樹算法預測泰坦尼克號幸存者

實驗目的1. 掌握特征工程&#xff0c;會進行特征提取與特征選擇&#xff0c;會進行缺失值填充。2. 建立決策樹模型&#xff0c;解決實際問題。3. 會對模型進行調試&#xff0c;能夠繪制并保存決策樹。實驗環境Python 3.7.0&#xff0c;Sklearn &#xff0c;PyCharm實驗原理1、特…

從全棧開發到微服務架構:一次真實的Java面試實錄

從全棧開發到微服務架構&#xff1a;一次真實的Java面試實錄 面試官與應聘者介紹 面試官&#xff1a;李明&#xff0c;某互聯網大廠技術負責人&#xff0c;擅長Java后端、微服務及云原生架構。 應聘者&#xff1a;張偉&#xff0c;28歲&#xff0c;碩士學歷&#xff0c;擁有5年…

新的 Gmail 網絡釣魚攻擊利用 AI 提示注入來逃避檢測

網絡釣魚一直以來都是為了欺騙人們。但在這次活動中&#xff0c;攻擊者不僅瞄準用戶&#xff0c;還試圖操縱基于人工智能的防御系統。 這是我上周記錄的Gmail 網絡釣魚鏈的演變。那次攻擊活動依賴于緊迫性和重定向&#xff0c;但這次引入了隱藏的 AI 提示&#xff0c;旨在混淆…

Restful風格設計

文章目錄什么是Restful風格&#xff1f;RESTful API設計最佳實踐1. URL設計原則2. HTTP狀態碼的正確使用3. 統一的響應格式實際案例&#xff1a;用戶管理系統API總結什么是Restful風格&#xff1f; 我的理解是&#xff1a;Restful是一種基于HTTP協議的架構設計風格&#xff0c…

深入 Glide 圖像變換:自定義效果、GIF處理與組合變換

在 Android 開發中&#xff0c;Glide 的強大不僅在于其高效的加載和緩存能力&#xff0c;更在于其無與倫比的可擴展性&#xff0c;尤其是在圖像處理層面。當內置的 fitCenter() 和 circleCrop() 無法滿足你的設計需求時&#xff0c;自定義 Transformation 便是你的終極武器。本…

數據挖掘 4.8 評估泛化能力

4.8 Estimating Generalization 4.8 評估泛化能力 評估模型的泛化能力如何合理評估模型的泛化能力指導原則 (Guidelines)存在的問題 (Issues)K-fold 交叉驗證&#xff08;Cross-Validation)留一交叉驗證&#xff08;Leave One Out CV&#xff09;(LOOCV)Stratification 分層訓練…