Van olyan, hogy túl sok index?

Hogy ne lenne!

Tegyük tisztába: az indexek a lekérdezések gyorsaságát befolyásolhatják.

Ha van egy táblánk, annak van egy struktúrája és az adatsorok bizonyos sorrendben szerepelnek benne. Az indexet nézhetjük úgy, hogy egy segédtábla, amiben a sorok másféle sorrendben szerepelnek.

A táblában mondjuk személyek adatait tároljuk, és egy generált egyedi azonosító szerint szerepelnek a sorok. Tehetünk rá egy indexet, ami például a személyek teljes neve alapján rendezett; egyet, ami a személyi számuk szerint; egyet, ami a laphelyük szerint; és a lehetőségek tárháza végtelen.

Ha a táblára futtatunk egy lekérdezést, akkor a szerver szépen kioptimizálja azt, és megállapítja, melyik index lenne a legmegfelelőbb, hogy gyorsabban kapjuk meg az eredményt.

De mi történik, ha az adatokat frissítjük? Mondjuk valaki nevet változtat? Vagy elköltözik másik városba? Nemet vált? Kiadunk egy update parancsot, és frissítjük a tábla adatait. Ilyenkor az indexek is frissülnek, de ezzel nem kell külön törődnünk, a szerver szépen elintézi, amit el kell.

Szerintetek melyik frissítés fut le hamarabb? Az, ahol a táblán csak egy indexet kell a szervernek a háttérben frissítenie, vagy az, ahol a táblán levő 10-15 indexet kell frissíteni? Ha az elsőre tippeltél, akkor jól tippeltél.

Ez megint nem fekete-fehér, gondolkozni kell, mi a fontosabb az adott táblánál: az olvasás vagy az írás sebessége.