SQL NOT IN subquery menyebabkan kemerosotan prestasi
P粉696146205
P粉696146205 2023-09-12 12:21:35
0
2
630

Saya ingin menggunakan borang untuk menyemak jalan-jalan.

  1. Pertanyaan tidak optimum
  2. 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;

P粉696146205
P粉696146205

membalas semua(2)
P粉015402013
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.

Indekspost_plz (adress, plz)adress (strasse, plz, id)mesti dioptimumkan.

P粉739079318

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;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan