ALTER TABLE tablename ENGINE=MYISAM;能用 SMALLINT 別用 INT,能用 VARCHAR(20) 別用 CHAR(200)。節省存儲、減少 I/O、提高緩存命中率。
NULL 列需要額外位圖存儲,查詢優化器難以優化,索引統計複雜。NOT NULL 查詢更快。
整數比較快、佔用小、利於聚簇索引有序插入。避免 UUID、字符串作主鍵導致頁分裂、索引膨脹。
索引類型:INDEX(普通)、PRIMARY KEY(主鍵)、UNIQUE(唯一)、FULLTEXT(全文)。
創建原則:
OPTIMIZE TABLE tablename:整理碎片、更新統計信息EXPLAIN SELECT ...:分析執行計劃,看 type、key、rows、Extra補充:MySQL 5.6+ 針對 InnoDB 全文索引、在線 DDL、優化器迭代有重大改進,生產環境建議升級至 5.7/8.0。