Rumah > pangkalan data > tutorial mysql > Di mana Klausa dalam MySQL Bergabung: ON lwn. WHERE – Mana yang Lebih Cekap?

Di mana Klausa dalam MySQL Bergabung: ON lwn. WHERE – Mana yang Lebih Cekap?

Patricia Arquette
Lepaskan: 2024-12-09 15:54:12
asal
467 orang telah melayarinya

Where Clause in MySQL Joins:  ON vs. WHERE – Which is More Efficient?

MySQL Join Optimization with Where Clause

Dalam MySQL, penyambungan dua jadual boleh dilakukan menggunakan pelbagai jenis cantuman. Apabila melakukan gabungan kiri dan ingin menggunakan syarat berdasarkan lajur daripada satu atau kedua-dua jadual, peletakan syarat boleh memberi kesan kepada kecekapan dan hasil pertanyaan.

Pertimbangkan senario berikut:

  • Kami mempunyai dua jadual, kategori dan pengguna_kategori_langganan, dan ingin mendapatkan semua kategori dan kategori dilanggan oleh pengguna tertentu.
  • Lajur category_id ialah kunci dalam kedua-dua jadual dan user_id hadir dalam jadual user_category_subscriptions.

Pertanyaan berikut mencapai hasil yang diingini:

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions
ON user_category_subscriptions.category_id = categories.category_id AND user_category_subscriptions.user_id = 1;
Salin selepas log masuk

Walau bagaimanapun, menggunakan klausa WHERE dan bukannya klausa DAN dalam cantuman boleh membawa kepada kecekapan berkurangan:

SELECT *
FROM categories
LEFT JOIN user_category_subscriptions
ON user_category_subscriptions.category_id = categories.category_id
WHERE user_category_subscriptions.user_id = 1;
Salin selepas log masuk

Dalam cantuman luar, peletakan syarat dalam klausa cantum atau klausa WHERE mengubah tingkah lakunya secara drastik. Apabila dinyatakan dalam cantuman, hanya subset baris yang memenuhi syarat digabungkan, menghasilkan pemilihan baris yang cekap. Sebaliknya, menggunakan klausa WHERE menapis baris yang telah dicantumkan, membuang mana-mana yang tidak memenuhi syarat.

Oleh itu, untuk menanya dengan cekap semua kategori dan yang dilanggan oleh pengguna tertentu, meletakkan syarat dalam gabungan klausa adalah disyorkan. Pendekatan ini memastikan bahawa hanya baris yang berkaitan digabungkan, memberikan hasil yang lebih cepat dan lebih tepat.

Atas ialah kandungan terperinci Di mana Klausa dalam MySQL Bergabung: ON lwn. WHERE – Mana yang Lebih Cekap?. 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