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

MySQL 效能優化八大核心策略(上)

     編輯:MySQL 資料庫相關知識

1. 選擇最適合的欄位屬性

  • 表越小,查詢越快。欄位長度設定剛好足夠(如郵遞區號用 CHAR(6) 而非 VARCHAR(255))。
  • 整數型優先用 MEDIUMINT 而非 BIGINT。
  • 可行時設定 NOT NULL,避免 NULL 比較開銷。
  • 固定值集合(如「性別」、「省份」)用 ENUM,內部以數值儲存,處理速度遠快於字串。

2. 以 JOIN 取代子查詢

MySQL 4.1+ 支援子查詢,但某些場合 JOIN 效能更佳。

子查詢範例

DELETE FROM customerinfo 
WHERE CustomerID NOT IN (SELECT CustomerID FROM salesinfo);

改寫為 LEFT JOIN

SELECT * FROM customerinfo 
LEFT JOIN salesinfo ON customerinfo.CustomerID = salesinfo.CustomerID 
WHERE salesinfo.CustomerID IS NULL;

原因:JOIN 避免在記憶體建立臨時表,若 salesinfo.CustomerID 有索引,效能差距更大。

3. 以 UNION 取代手動臨時表

MySQL 4.0+ 支援 UNION,可將多個 SELECT 合併,會話結束自動清理臨時表。

SELECT Name, Phone FROM client
UNION
SELECT Name, BirthDate FROM author
UNION
SELECT Name, Supplier FROM product;

注意:所有 SELECT 欄位數必須相同。

4. 善用交易

(原文此處截斷,下篇續述)

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