Az SQL nagyon egyszerűen kezelhető és felhasználó-hatékony, mivel a parancsok szintaxisa egyszerű. De aztán az SQL parancs hatékonysága függ a különböző adatbázis-funkcióktól, konkrétan azok egyedi számítási idejétől. Továbbá a nyelv hatékonysága nem jelenti azt, hogy a nyelv optimalizálása is könnyebb lenne. Minden adatbázis egyedi hangolási módokat igényel, az egyedi igényeknek megfelelően.
Ezért tanácsos a legjobb SQL-adatbázis használata, valamint az adatbázis optimalizálásának vagy növelésének különböző módjainak ismerete, hogy a legjobb teljesítményt biztosítsa belőle. Az SQL adatbázis optimalizálásának hatóköre a fejlesztők, mint mondjuk a Senior Java j2ee fejlesztők számára bizonyos tekintetben különbözik az adatbázis-adminisztrátor (DBA) munkájától, más tekintetben pedig hasonló. A nagyvállalatoknál a fejlesztőknek és a DBA-knak gyakran együtt kell dolgozniuk, ahol gyakran előfordul, hogy konfliktus alakul ki a két csapat között. Az SQL-adatbázisokat többféle módon lehet tuningolni.
- NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
- HOW TO GROW YOUR SERVERLESS TEAM
- MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
- A megfelelő indexelés
- TOVÁBB: A 2017-es év legjobb adatbázisai: SQL, NoSQL, Big Data, gyors adatok trendjei
- Kizárólag a releváns adatok lekérdezése
- Korrelált al-lekérdezésektől való megszabadulás
- TOVÁBB: Team MySQL kontra Team PostgreSQL: Ezek a cégek fogadkoznak
- Az ideiglenes táblák használata vagy mellőzése a követelményektől függően
- Kódolási hurkok elkerülése
- Futtatási tervek
NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
Helen Beal (DevOps Institute.)
HOW TO GROW YOUR SERVERLESS TEAM
NÖVELNI A SZERVERLESS CSAPATOT
Sheen Brisals (The LEGO Group)
MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
Hauke Brammer (finpair GmbH)
A megfelelő indexelés
Az index alapvetően egy olyan adatszerkezet, amely segít az adatlekérdezési folyamat általános felgyorsításában. Az egyedi index egyfajta indexelés, amely különálló adatoszlopokat hoz létre úgy, hogy azok nem fedik egymást. A megfelelő indexelés biztosítja az adatbázis gyorsabb elérését. A túlzott indexelés vagy az indexelés teljes hiánya egyaránt helytelen. Egyáltalán indexelés nélkül a feldolgozás nagyon lassú lesz, míg ha mindent indexelünk, akkor a beszúrási és frissítési triggerek hatástalanná válnak.
TOVÁBB: A 2017-es év legjobb adatbázisai: SQL, NoSQL, Big Data, gyors adatok trendjei
Kizárólag a releváns adatok lekérdezése
Az adatok pontos meghatározása lehetővé teszi a pontos lekérdezést. A SELECT *
helyett a *
és LIMIT
parancsok igény szerinti használata nagyszerű módja az adatbázis hangolásának, miközben elkerülhető, hogy a teljes adathalmazt lekérjük, amikor a felhasználó csak egy bizonyos részre kíváncsi. Természetesen erre nem lesz szükség, ha az adatmennyiség összességében kisebb. De ha nagy forrásból származó adatokhoz férünk hozzá, a szükséges részek megadásával sok lényeges időt takaríthatunk meg.
A *
parancsot az oszlopokból származó adatok megadására használjuk, a LIMIT
parancsot pedig akkor, ha a felhasználónak a tételek közül egy bizonyos számú sorból van szüksége adatokra. A takarékos kiválasztás nem éppen szükséges szabály. Segít azonban abban, hogy a későbbiekben elkerülhetők legyenek a rendszerhibák. Emellett az adatok korlátozása és meghatározása nagymértékben csökkenti az adatbázis további optimalizálásának szükségességét.
Korrelált al-lekérdezésektől való megszabadulás
A korrelált al-lekérdezés alapvetően a szülő vagy külső lekérdezéstől függ. Ez a fajta keresés soronként történik. Ez azt jelenti, hogy csökkenti a folyamat teljes sebességét. Ez a probléma általában a WHERE
külső lekérdezésből származó parancsban rejlik, amelynek alkalmazásával az al-lekérdezés minden egyes, a szülő lekérdezés által visszaadott sorra lefut, következésképpen lassítja az egész folyamatot és csökkenti az adatbázis hatékonyságát. Tehát az adatbázis hangolásának jobb módja ebben az esetben a INNER JOIN
parancs, a korrelált al-lekérdezés helyett. Bizonyos esetekben azonban a korrelált al-lekérdezés használata elengedhetetlen.
TOVÁBB: Team MySQL kontra Team PostgreSQL: Ezek a cégek fogadkoznak
Az ideiglenes táblák használata vagy mellőzése a követelményektől függően
Ha bármilyen kódot jól meg lehet írni egyszerű módon, egyáltalán nem szükséges azt ideiglenes táblákkal bonyolulttá tenni. Természetesen, ha egy adathoz olyan speciális eljárást kell beállítani, amely több lekérdezést igényel, akkor az ideiglenes táblák használata ilyen esetekben tulajdonképpen ajánlott. Az ideiglenes táblákat gyakran váltogatják az al-lekérdezések, de szem előtt kell tartani, hogy ezek külön-külön milyen sajátos hatékonyságot biztosítanának.
Kódolási hurkok elkerülése
A kódolási hurkok elkerülése nagyon is szükséges az egész sorozat lassulásának elkerülése érdekében. Ezt az egyedi UPDATE
vagy INSERT
parancsok használatával lehet elérni az egyes sorokkal, valamint azzal, hogy a WHERE
parancs nem frissíti a tárolt adatokat abban az esetben, ha talál egy megfelelő, már meglévő adatot.
Futtatási tervek
Az optimalizáló által létrehozott végrehajtási terv eszköznek nagy szerepe van az SQL-adatbázisok tuningjában. Segítenek a megfelelő indexek létrehozásában is. Bár fő funkciója az adatok lekérdezésének különböző módszereinek grafikus megjelenítése. Ez viszont segít a szükséges indexek létrehozásában és az adatbázis optimalizálásához szükséges egyéb lépések elvégzésében.
Természetesen rengeteg más módja is van annak, hogy az ember a leghatékonyabb módon tuningolja SQL-adatbázisát. Emellett nagy az esélye annak is, hogy a fent említett lépések nem minden adatbázis esetében jelentenek megfelelő választást. Minden adatbázis egyedi, az igényeihez igazodó optimalizálási technikákat igényel.