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

MySQL 維護核心命令:ANALYZE/CHECKSUM/OPTIMIZE/CHECK/REPAIR 實戰手冊

     編輯:MySQL 資料庫相關知識

1. ANALYZE TABLE - 更新索引統計信息


SHOW INDEX FROM PLAYERS;  -- 觀察 Cardinality(散列度)
ANALYZE TABLE PLAYERS;    -- 修復 Cardinality
-- 加 LOCAL 避免寫 binlog:ANALYZE LOCAL TABLE PLAYERS;

Cardinality 遠小於實際不重複值 → 索引失效。Analyze 後恢復準確,查詢效率大增。

2. CHECKSUM TABLE - 數據一致性校驗


CHECKSUM TABLE tbl_name [QUICK | EXTENDED];
-- QUICK:返回存儲的 live checksum(MyISAM 支援)
-- EXTENDED:重新計算(預設)

MyISAM 表修改數據時 live checksum 自動更新,可用於跨庫/備份一致性比對。

3. OPTIMIZE TABLE - 整理碎片


OPTIMIZE [LOCAL] TABLE tbl_name;
-- 適用 MyISAM/InnoDB
-- 經常 UPDATE/DELETE 的表定期執行
-- LOCAL 避免寫 binlog

4. CHECK TABLE - 檢查錯誤


CHECK TABLE PLAYERS;
-- 選項:
-- QUICK   最快,不檢查鏈接
-- FAST    僅檢查是否正常關閉
-- CHANGED 僅檢查上次檢查後變更的數據
-- MEDIUM  預設,檢查索引/數據文件鏈接
-- EXTENDED 最慢,全面檢查
-- UPGRADE 檢查舊版本表兼容性

查看最近檢查時間:


SELECT TABLE_NAME, CHECK_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'PLAYERS';

5. REPAIR TABLE - 修復損壞(僅 MyISAM/ARCHIVE)


REPAIR [LOCAL] TABLE tbl_name [QUICK | EXTENDED | USE_FRM];
-- QUICK     最快,只修索引樹
-- EXTENDED  最慢,逐行重建索引
-- USE_FRM   .MYI 丟失時,按 .frm 重建全量索引

🔧 維護原則:定期 Analyze/Optimize,異常時 Check/Repair,跨庫遷移驗證 Checksum,binlog 環境加 LOCAL。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved