ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...;
CHECK TABLE tbl_name [, tbl_name] ... [option] ...;
-- option: QUICK | FAST | MEDIUM | EXTENDED | CHANGED
EXTENDED 最完整但最慢,QUICK 僅檢查索引樹。OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...;
ALTER TABLE tbl_name DISABLE KEYS;
-- 執行大量 INSERT / LOAD DATA INFILE
ALTER TABLE tbl_name ENABLE KEYS;
DISABLE KEYS 暫停非唯一索引更新,資料載入完畢後 ENABLE KEYS 重建索引,大幅提升速度。LOAD DATA INFILE 比多條 INSERT 快約 20 倍。SET UNIQUE_CHECKS = 0; -- 匯入前
SET UNIQUE_CHECKS = 1; -- 匯入後
SET AUTOCOMMIT = 0; -- 匯入前
SET AUTOCOMMIT = 1; -- 匯入後
innodb_log_buffer_size 減少磁碟同步頻率。INSERT INTO t VALUES (1,2), (3,4), (5,6); 減少客戶端往返開銷。DATA DIRECTORY/INDEX DIRECTORY)。WHERE id > last_id LIMIT n 方式(詳見後續文章)。type、key、rows、Extra 欄位。ANALYZE、CHECK、OPTIMIZE 執行期間皆會鎖表,務必在資料庫低負載時段(如深夜)執行,並監控執行時間避免影響線上服務。