Rumah >pangkalan data >tutorial mysql >PILIH DISTINCT atau KUMPULAN OLEH: Pertanyaan MySQL manakah yang Lebih Pantas untuk Nilai Unik?
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!