首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 資料表檢查與修復完整操作指南

     編輯:MySQL 資料庫相關知識

⚠️ 重要提示

**本文原始內容與文章 90954 完全重複(均為權限表內容),標題「檢查資料表和修復資料表」與內容不符。**

正確的資料表檢查修復內容應包含:

正確內容大綱(補充)

1. CHECK TABLE 檢查資料表

CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option: QUICK | FAST | MEDIUM | EXTENDED | CHANGED
  • QUICK:僅檢查索引,不掃描資料
  • FAST:僅檢查未正常關閉的表
  • MEDIUM(預設):檢查索引並驗證資料列刪除連結
  • EXTENDED:完整檢查,含資料列完整性驗證(最慢)
  • CHANGED:僅檢查上次檢查後有變更的表

2. REPAIR TABLE 修復資料表

REPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE tbl_name [, tbl_name] ... [option] ...
option: QUICK | EXTENDED | USE_FRM
  • 僅支援 MyISAM、ARCHIVE、CSV 引擎
  • QUICK:只修復索引樹
  • EXTENDED:逐行重建索引(較慢但徹底)
  • USE_FRM:.MYI 索引檔遺損時,用 .frm 定義重建

3. myisamchk 離線檢修工具

# 停止 MySQL 服務後執行
myisamchk -r /path/to/table_name    # 修復模式
myisamchk -c /path/to/table_name    # 檢查模式
myisamchk -r -q /path/to/table_name # 快速修復

離線操作更安全,避免並發衝突。

4. InnoDB 表修復

  • InnoDB 具崩潰恢復機制,啟動時自動重做/回滾
  • 嚴重損壞可嘗試 innodb_force_recovery=1..6 分級導出資料
  • 定期備份才是根本保障

5. 自動化維護建議

  • 排程 mysqlcheck -A --auto-repair 定期檢修所有表
  • 監控錯誤日誌中的 "Table is marked as crashed" 訊息
  • 重要資料庫採用主從架構,從庫離線檢修不影響服務
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved