Rumah > pangkalan data > tutorial mysql > PILIH DISTINCT lwn. KUMPULAN OLEH: Manakah yang Lebih Cepat untuk Mendapatkan Nilai Unik dalam MySQL?

PILIH DISTINCT lwn. KUMPULAN OLEH: Manakah yang Lebih Cepat untuk Mendapatkan Nilai Unik dalam MySQL?

Linda Hamilton
Lepaskan: 2025-01-15 06:42:43
asal
858 orang telah melayarinya

SELECT DISTINCT vs. GROUP BY: Which is Faster for Unique Value Retrieval in MySQL?

MySQL: PILIH DISTINCT lwn. GROUP BY untuk Nilai Unik

Apabila mendapatkan semula nilai unik daripada jadual MySQL, SELECT DISTINCT dan GROUP BY mungkin kelihatan boleh ditukar ganti, tetapi prestasinya boleh berbeza dengan ketara. Artikel ini membandingkan kecekapan mereka.

Senario: Pendapatan Profesion Unik

Pertimbangkan pertanyaan untuk mendapatkan semula profesion unik daripada jadual users untuk pekerja di 'XYZ':

<code class="language-sql">SELECT u.profession FROM users u
WHERE u.employer = 'XYZ'
ORDER BY u.profession</code>
Salin selepas log masuk

Untuk memastikan hanya profesion unik dikembalikan, kami boleh menggunakan sama ada SELECT DISTINCT atau GROUP BY:

Pilihan 1: SELECT DISTINCT

<code class="language-sql">SELECT DISTINCT u.profession FROM users u
WHERE u.employer = 'XYZ'
ORDER BY u.profession</code>
Salin selepas log masuk

Pilihan 2: GROUP BY

<code class="language-sql">SELECT u.profession FROM users u
WHERE u.employer = 'XYZ'
GROUP BY u.profession
ORDER BY u.profession</code>
Salin selepas log masuk

Pertimbangan Prestasi

Walaupun kedua-dua pertanyaan menghasilkan output yang sama, SELECT DISTINCT secara amnya menawarkan prestasi yang lebih baik. MySQL mengoptimumkan SELECT DISTINCT menggunakan teknik seperti peta bit atau jadual cincang, menapis pendua dengan cekap dalam satu laluan. GROUP BY, sebaliknya, melibatkan pengumpulan baris dan overhed pengagregatan tambahan, yang berpotensi memperlahankan pelaksanaan pertanyaan.

Pengecualian: Bila GROUP BY Mungkin Lebih Cepat

Walaupun SELECT DISTINCT biasanya diutamakan, GROUP BY boleh mengatasinya dalam situasi tertentu. Jika klausa ORDER BY termasuk lajur di luar lajur profession, GROUP BY mungkin menawarkan pengoptimuman yang lebih baik.

Pengesyoran

Untuk mendapatkan semula nilai unik dalam MySQL, SELECT DISTINCT lazimnya ialah pilihan yang lebih cekap. Walau bagaimanapun, menanda aras kedua-dua pertanyaan dengan data khusus anda adalah penting untuk menentukan pendekatan optimum untuk aplikasi anda.

Atas ialah kandungan terperinci PILIH DISTINCT lwn. KUMPULAN OLEH: Manakah yang Lebih Cepat untuk Mendapatkan Nilai Unik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan