"Legyen Ön is Milliomos!" adatbázis indexek

A Legyen Ön is Milliomos! Facebook játék publikálása óta fájó pont volt, hogy az "éles" verziónak tegnapig tárhelyet biztosító cég bizonyos dolgokat éjjelente önkényesen módosít az adatbázisban. Bár ezt feltehetően optimalizációs céllal, automatizáltan teszi, mégis elég kellemetlenül érintett, mikor észrevettem, hogy a MySQL nézeteim éjjelente törlésre kerülnek, illetve hogy az adatbázis táblákban is új indexek képződnek, melyeket aztán hiába hoztam létre újra, vagy töröltem a létrejövőket, minden este (vélhetően a biztonsági mentések készítése körül, hajnal 3 órakor) újra és újra törlődtek illetve létrejöttek, ráadásul a cégnek ezügyben küldött e-mailekre sem kaptam soha érdemi választ.

A tegnap éjjeli költözködés után elérkezettnek láttam az időt, ennek a problémának a helyrerakásához, különösen, hogy az adatbázis az utóbbi 2-3 hónap alatt erősen megközelítette a 100MB-os mérethatárt (>90MB), melynek jelentős részét az adatbázis táblák így létrejött indexei teszik ki.

A játék tervezésekor fontos szempont volt a definiálandó indexek helyes meghatározása, ezért az automatizáltan létrejövő indexeknek nincsen tényleges létjogosultságuk, azokat törölni kell. Példaként megemlíteném, hogy az egyik historikus adatokat tároló (szükséges hogy lehetőleg ne ismétlődjenek a játékban feltett kérdések) tábla mérete meghaladta a 80MB-ot (több mint 1.15 millió rekord esetében), amiből egy kéretlenül és szükségtelenül generált index törlése 20MB-ot jelentett, a karbantartáshoz szükséges többlet processzoridőről nem is beszélve.

Fontosnak tartom megjegyezni, hogy ezeket az indexeket mint említettem vélhetően statisztikai alapon, jó szándék által vezérelve hozták létre, azonban a ritka manuális SQL alapú adminisztrátori lekérdezésekhez ezek ár-érték aránya messze nem megfelelő. Igyekeztem tájékozódni a probléma üzemeltetői oldaláról is, ahol egy konkurens cégnél dolgozó rendszergazda ismerős arról tájékoztatott, hogy az ilyen jellegű problémákra van más megoldás is és náluk a felhasználói tartalmakhoz nyúlni szigorúan tilos.

Az elmúlt pár óra tapasztalatai azt mutatják, hogy érdemes volt külföldi felhő alapú szolgáltatáshoz költözni.

Lényeg a lényeg, optimalizálunk, fejlesztünk, tanulunk, haladunk :)