SHOW INDEX FROM PLAYERS; -- 觀察 Cardinality(散列度)
ANALYZE TABLE PLAYERS; -- 修復 Cardinality
-- 加 LOCAL 避免寫 binlog:ANALYZE LOCAL TABLE PLAYERS;
Cardinality 遠小於實際不重複值 → 索引失效。Analyze 後恢復準確,查詢效率大增。
CHECKSUM TABLE tbl_name [QUICK | EXTENDED];
-- QUICK:返回存儲的 live checksum(MyISAM 支援)
-- EXTENDED:重新計算(預設)
MyISAM 表修改數據時 live checksum 自動更新,可用於跨庫/備份一致性比對。
OPTIMIZE [LOCAL] TABLE tbl_name;
-- 適用 MyISAM/InnoDB
-- 經常 UPDATE/DELETE 的表定期執行
-- LOCAL 避免寫 binlog
CHECK TABLE PLAYERS;
-- 選項:
-- QUICK 最快,不檢查鏈接
-- FAST 僅檢查是否正常關閉
-- CHANGED 僅檢查上次檢查後變更的數據
-- MEDIUM 預設,檢查索引/數據文件鏈接
-- EXTENDED 最慢,全面檢查
-- UPGRADE 檢查舊版本表兼容性
查看最近檢查時間:
SELECT TABLE_NAME, CHECK_TIME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'PLAYERS';
REPAIR [LOCAL] TABLE tbl_name [QUICK | EXTENDED | USE_FRM];
-- QUICK 最快,只修索引樹
-- EXTENDED 最慢,逐行重建索引
-- USE_FRM .MYI 丟失時,按 .frm 重建全量索引
🔧 維護原則:定期 Analyze/Optimize,異常時 Check/Repair,跨庫遷移驗證 Checksum,binlog 環境加 LOCAL。