Lehet egy SQL lekérdezés azért lassú, mert nincs kulcs a táblában?
Feltételezem arra gondolsz, hogy semmit nem jelöltél meg ekként a sémában. Az adatbáziskezelők automatikusan indexelni szokták az elsődleges kulcsokat, amely a lekérdezésen jelentősen gyorsíthat, hiszen nem kell minden adatot lineárisan végignézni.
#1 vagy rossz az adatbázis felépítése (beleértve azt is, hogy semmit vagy éppen mindent indexelnek), vagy rosszul van megkonstruálva a lekérdezés...
Az indexelés hiánya okozhatja, amiben keresel, ami alapján sorba rakod.
Illetve hatalmas tábláknál (milliós), pl. LIMIT -el történő lekérés,
nem az elején, hanem a vége felén, mert ahhoz hogy pl. tudja mi kezdődik a 1 650 500 -tól,
ahhoz előbb végig kell mennie az 1 650 500 bejegyzésen.
Ilyen hatalmas tábláknál Indexelt elemek, illetve ID alapján célszerű keresni.
Ja'h és nagy tábláknál célszerű külön venni azokat, amikben közvetlen nincs keresés, nagyméretűek.
Minél kisebb legyen a tábla mérete amiben keresel,
majd ID alapján kapcsolod a szükséges adatokat, egy másik táblából.
Ha esetleg sikerült 'descartes' szorzatot csinálni ( link hiánya, azaz a 2 tábla nincs 'összekötve' -join- csak felsorolva a FROM után) az is nagyon le lassú tud lenni...
Az index és az eleve szűrt táblák összekapcsolása sokat lendít a sebességen.
Ha olyan szerkesztővel dolgozol ami ezt támogatja, nézd meg a 'végrehajtási tervet'.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!