Rumah >pangkalan data >tutorial mysql >PILIH DISTINCT atau KUMPULAN OLEH: Pertanyaan MySQL manakah yang Lebih Pantas untuk Nilai Unik?

PILIH DISTINCT atau KUMPULAN OLEH: Pertanyaan MySQL manakah yang Lebih Pantas untuk Nilai Unik?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-15 06:28:43454semak imbas

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

Perbandingan prestasi SELECT DISTINCT dan GROUP BY dalam MySQL

Dalam MySQL, anda boleh menggunakan pertanyaan SELECT DISTINCT atau GROUP BY untuk mengekstrak nilai unik dalam jadual. Walau bagaimanapun, terdapat beberapa kesamaran tentang kaedah mana yang lebih baik.

Pertimbangkan borang berikut:

<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>

Untuk mendapatkan semula nilai unik untuk medan "profesion", anda boleh menggunakan dua pertanyaan:

Pertanyaan 1 (SELECT DISTINCT):

<code class="language-sql">SELECT DISTINCT u.profession FROM users u</code>

Pertanyaan 2 (GROUP BY):

<code class="language-sql">SELECT u.profession FROM users u GROUP BY u.profession</code>

Mana satu lebih cepat?

Walaupun kedua-dua pertanyaan ini kelihatan setara dari segi fungsi, prestasinya mungkin berbeza-beza bergantung pada pengoptimum pertanyaan. Biasanya, SELECT DISTINCT lebih laju sedikit.

Ini kerana GROUP BY mengumpulkan mengikut semua lajur yang boleh dilihat secara lalai. Dalam kes ini, kerana tiada lajur lain digunakan dalam pertanyaan, pengoptimum mungkin perlu melakukan kerja tambahan untuk mengenal pasti sama ada pengelompokan itu tidak masuk akal. Sebaliknya, SELECT DISTINCT secara eksplisit meminta nilai unik.

Kesimpulan

Dalam kebanyakan kes, perbezaan prestasi antara SELECT DISTINCT dan GROUP BY adalah diabaikan. Walau bagaimanapun, jika pengoptimuman adalah kritikal, adalah disyorkan untuk menggunakan SELECT DISTINCT kerana ia memudahkan tugas pengoptimum pertanyaan.

Petua: Untuk mendapatkan keputusan muktamad, disyorkan untuk sentiasa menguji kedua-dua kaedah dalam persekitaran pemantauan prestasi.

Atas ialah kandungan terperinci PILIH DISTINCT atau KUMPULAN OLEH: Pertanyaan MySQL manakah yang Lebih Pantas untuk Nilai Unik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn