Egy index felgyorsítja az adatkeresést. Index nélkül az adatbázis minden sort átvizsgál, hogy egyező rekordokat találjon. Index használatával közvetlenül a releváns sorokra ugrik. Az index egy különálló adatstruktúra, amely az értékeket helyekhez rendeli. Egy könyvindex ugyanígy működik. Kikeresünk egy kifejezést, és megkeressük az oldalszámát. Nem kell minden oldalt elolvasni, hogy megtaláljuk. Az adatbázis ugyanezt teszi.
Az indexeknek ára van. Helyet foglalnak. Lassítják a beszúrásokat, frissítéseket és törléseket, mert az indexet is frissíteni kell. Minden írás drágábbá válik. Az előnyük a gyorsabb olvasás. Az olvasási igényű munkaterhelésekhez az indexek elengedhetetlenek. Az írási igényű munkaterhelésekhez a túl sok index rontja a teljesítményt. Az indexelendő oszlopok kiválasztásához meg kell érteni a lekérdezési mintákat. A WHERE záradékokban, a JOIN feltételekben és az ORDER BY záradékokban használt oszlopok jó jelöltek. Az alacsony kardinalitású oszlopok, mint például egy logikai jelző, rossz jelöltek, mert az index nem szűkíti jelentősen a keresést. Az összetett indexek több oszlopot fednek le, és olyan lekérdezéseket is kiszolgálhatnak, amelyek több mező alapján szűrnek. Az oszlopok sorrendje egy összetett indexben számít. Az adatbázis használhat összetett indexet a vezető oszlop lekérdezéséhez, de nem csak a hátsó oszlopokhoz. Az indextervezés kompromisszum. A cél az, hogy felgyorsítsuk a fontos lekérdezéseket anélkül, hogy a szükségesnél jobban lelassítanánk az írást.
Indextípusok
- B-fa – a legtöbb adatbázis alapértelmezett értéke, tartománylekérdezésekhez jó
- Hash – gyors egyenlőségkeresés, tartománytámogatás nélkül
- Bitmap — alacsony kardinalitású oszlopok, analitikus lekérdezések
- Teljes szöveg – szöveges keresés
- Összetett — több oszlop egy indexben
Az index egy gyorsbillentyű. Az írási sebességet és a tárhelyet olvasási sebességre cseréli. Ott használd, ahol az olvasás a legfontosabb.
Comments (3)
Leave a comment