首頁 > 資料庫 > mysql教程 > SELECT DISTINCT 或 GROUP BY:對於唯一值,哪種 MySQL 查詢比較快?

SELECT DISTINCT 或 GROUP BY:對於唯一值,哪種 MySQL 查詢比較快?

Mary-Kate Olsen
發布: 2025-01-15 06:28:43
原創
450 人瀏覽過

SELECT DISTINCT or GROUP BY: Which MySQL Query is Faster for Unique Values?

MySQL 中 SELECT DISTINCT 與 GROUP BY 的效能比較

在 MySQL 中,擷取表格中的唯一值可以使用 SELECT DISTINCTGROUP BY 查詢。然而,關於哪種方法性能更好,存在一些模糊之處。

考慮以下表格:

<code class="language-sql">CREATE TABLE users (
  id int(10) unsigned NOT NULL auto_increment,
  name varchar(255) NOT NULL,
  profession varchar(255) NOT NULL,
  employer varchar(255) NOT NULL,
  PRIMARY KEY  (id)
)</code>
登入後複製

要檢索 "profession" 欄位的唯一值,可以使用兩種查詢:

查詢 1 (SELECT DISTINCT):

<code class="language-sql">SELECT DISTINCT u.profession FROM users u</code>
登入後複製

查詢 2 (GROUP BY):

<code class="language-sql">SELECT u.profession FROM users u GROUP BY u.profession</code>
登入後複製

哪個比較快?

雖然這兩個查詢在功能上看起來等效,但它們的效能可能會因查詢最佳化器而異。通常情況下,SELECT DISTINCT 稍微快一些。

這是因為 GROUP BY 預設會按所有可見列分組。在本例中,由於查詢中沒有使用其他列,因此優化器可能需要執行額外的工作來識別分組是否沒有意義。另一方面,SELECT DISTINCT 明確地請求唯一值。

結論

在大多數情況下,SELECT DISTINCTGROUP BY 之間的效能差異可以忽略不計。但是,如果最佳化至關重要,建議使用 SELECT DISTINCT,因為它簡化了查詢最佳化器的任務。

提示:為了獲得確定的結果,建議始終在效能監控環境中測試這兩種方法。

以上是SELECT DISTINCT 或 GROUP BY:對於唯一值,哪種 MySQL 查詢比較快?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板