萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 索引查看、建立、刪除完整語法指南與選型原則

1. 查看索引

SHOW INDEX FROM tbl_name;
SHOW KEYS FROM tbl_name;

輸出包含:索引名、欄位、基數、類型(BTREE/FULLTEXT 等)、是否唯一等資訊。

2. 建立索引

方式一:ALTER TABLE(支援主鍵)

ALTER TABLE table_name ADD INDEX idx_name (col_list);
ALTER TABLE table_name ADD UNIQUE uniq_name (col_list);
ALTER TABLE table_name ADD PRIMARY KEY (col_list);

方式二:CREATE INDEX(不支援主鍵)

CREATE INDEX idx_name ON table_name (col_list);
CREATE UNIQUE INDEX uniq_name ON table_name (col_list);

3. 刪除索引

DROP INDEX idx_name ON table_name;
ALTER TABLE table_name DROP INDEX idx_name;
ALTER TABLE table_name DROP PRIMARY KEY;

4. 索引的代價與收益平衡

索引能將查詢提速百倍,但:

  • 寫入(INSERT/UPDATE/DELETE)需額外維護索引,IO 放大。
  • 索引佔用空間常超過資料本身。
  • 必須確保索引「不虧本」:查詢頻率 × 提速收益 > 寫入頻率 × 維護成本。

5. 建索引黃金法則

  1. 高頻 WHERE 條件欄位優先建索引。
  2. 複合索引第一列必須是高頻查詢欄位;僅用第二列查詢索引不生效。
  3. 欄位區分度高(基數大)優先;性別、狀態等低基數欄位不宜單獨建索引。
  4. 長字串欄位使用前綴索引:INDEX idx_name (long_col(20))。

6. 進階提示

  • 覆蓋索引:Extra: Using index,避免回表。
  • 強制/忽略索引:USE INDEX(idx) / IGNORE INDEX(idx)。
  • 定期 ANALYZE TABLE 更新統計資訊,優化器才能做正確決策。
copyright © 萬盛學電腦網 all rights reserved