1az index (korábbi név: másodlagos index) lehetővé teszi a Cassandra adatainak elérését a partíciós kulcstól eltérő nem elsődleges kulcsmezők használatával. Az előny gyors, az adott feltételnek megfelelő adatok hatékony keresése. Valójában, ha nincs index egy normál oszlopban, akkor még az oszlopon sem lehet feltételesen lekérdezni.
az index egy különálló, rejtett oszlopcsaládban (táblázatban) indexeli az indexelt értékeket tartalmazó oszlopértékeket. Az index adatai csak lokálisak, ami azt jelenti, hogy nem replikálódik más csomópontokra. Ez azt is jelenti, hogy az indexelt oszloponkénti adatlekérdezéshez a kéréseket továbbítani kell az összes csomóponthoz, várva az összes rezonanciát, majd az eredményeket összevonják és visszaadják. Tehát, ha sok csomópontja van, a lekérdezési válasz lelassul, mivel több gép kerül a fürtbe.
Vigyázat:
az Apache Cassandra jelenlegi verziója (2.0.7) szerint csak indexelt oszlopban lehetett lekérdezni az egyenlőség összehasonlítási feltételével. A tartomány kiválasztása vagy az indexelt oszlop szerinti sorrend nem támogatott. Ennek oka az, hogy a rejtett oszlopcsaládban tárolt kulcsok rendezetlenek.
mikor kell indexet használni?
2a Cassandra beépített indexei a legjobbak egy olyan asztalon, amelynek sok sora tartalmazza az indexelt értéket. Minél több egyedi érték létezik egy adott oszlopban, annál több költsége lesz az index lekérdezéséhez és fenntartásához. Tegyük fel például, hogy van egy lejátszási listák táblázata egy milliárd dallal, és fel akarja keresni az előadó dalait. Sok dal ugyanazt az oszlopértéket fogja megosztani az előadó számára. A művész oszlop jó jelölt egy indexhez.
mikor ne használjon indexet?
2 Ne használjon indexet az alábbi helyzetekben:
- magas kardinalitású oszlopokon, mert akkor hatalmas mennyiségű rekordot kérdez ki kis számú eredményhez
- számláló oszlopot használó táblázatokban
- gyakran frissített vagy törölt oszlopon
- egy sor kereséséhez egy nagy partícióban, kivéve, ha szűken lekérdezik