SQL NOT IN subquery menyebabkan kemerosotan prestasi
P粉6961462052023-09-12 12:21:35
0
2
630
Saya ingin menggunakan borang untuk menyemak jalan-jalan.
Pertanyaan tidak optimum
Masa pertanyaan terlalu lama
Boleh sesiapa tolong saya
SELECT id, strasse, plz
FROM `adress`
WHERE strasse NOT IN (
SELECT street
FROM post_plz
WHERE `street` like adress.strasse AND plz like adress.plz
)
LIMIT 5;
SELECT id, strasse, plz
FROM adress
WHERE NOT EXISTS ( SELECT NULL
FROM post_plz
WHERE post_plz.street = adress.strasse
AND post_plz.plz = adress.plz )
-- ORDER BY {expression}
LIMIT 5
Apabila ORDER BY tidak digunakan, keputusan pertanyaan adalah tidak pasti (dua pertanyaan mungkin menghasilkan hasil yang berbeza). Jadi menambahkan beberapa pengisihan baris amat disyorkan.
Anda boleh cuba menggunakan gabungan kiri antara jadual dan semak nilai tidak sepadan
SELECT id, strasse, plz
from `adress`
left join post_plz on strasse = street
AND `street` like adress.strasse
AND plz like adress.plz
WHERE street is null
LIMIT 5;
Anda boleh cuba menggunakan gabungan kiri antara jadual dan semak nilai yang tidak sepadan
SELECT id, strasse, plz
from `adress`
left join post_plz on strasse = street
AND `street` like adress.strasse
AND plz like adress.plz
WHERE street is null
LIMIT 5;
Apabila ORDER BY tidak digunakan, keputusan pertanyaan adalah tidak pasti (dua pertanyaan mungkin menghasilkan hasil yang berbeza). Jadi menambahkan beberapa pengisihan baris amat disyorkan.
Indeks
post_plz (adress, plz)
和adress (strasse, plz, id)
mesti dioptimumkan.Anda boleh cuba menggunakan gabungan kiri antara jadual dan semak nilai tidak sepadan
Anda boleh cuba menggunakan gabungan kiri antara jadual dan semak nilai yang tidak sepadan