Diéta pre fotografický stôl Silvan Mühlemann; s blog

Naše sledovacie nástroje potvrdzujú situáciu: Nagios strieľal do môjho mobilného telefónu pomocou SMS ako guľomet. Sivá krivka, ktorá popisuje zaťaženie servera v gangliách, je výrazne nad červenou čiarou. Moreti, náš nástroj na meranie času odozvy, hlási niekoľko sekúnd na dodanie stránky preludku.

Známa situácia, s ktorou sa stretávame znova a znova ako za posledných šesť rokov našej existencie. Existujú dva spôsoby riešenia tejto situácie: väčšia optimalizácia hardvéru alebo softvéru.
Pridanie hardvéru je rýchle a ľahké riešenie.
VLOŽKY je potrebné urýchliť
V takom prípade je situácia iná: dotknutí sú to fotografi, ktorí chcú pridať fotografie na web. A menej návštevníkov, ktorí požadujú iba fotografie. „Pridať fotografie“ funguje pomaly. Toto sú teda príkazy INSERT a nie SELECT dotazy. Pridávajú sa nové fotografie. Takže nové riadky databázy
priložené:
Pretože pracujeme s replikáciou, tieto riadky musia byť skopírované všetkým otrokom. Jedno VLOŽENIE na otroka. Ak do klastra pridáme viac serverov, problém sa tým nevyrieši, pretože tieto riadky sa musia pridať aj na tieto nové servery. Viac serverov neznižuje počet INSERTov v klastri. V takom prípade hardvér nepomôže.
Stále hľadáme: VLOŽKY spôsobujú problémy. VLOŽKY sú príliš pomalé. Čo robí VLOŽKY pomalými? Čo je drahé s VLOŽKOU? Nie pridávanie údajov, ale zápis indexov. Indexy sú komplexné dátové štruktúry, B-stromy, binárne stromy, ktoré sa musia skontrolovať pri každom vložení riadku. Indexy sú drahé.
V prípade našej tabuľky s fotografiami tvoria indexy ešte viac bajtov ako dáta (a to aj napriek tomu, že naša dátová štruktúra je amatérska a plná redundancie)
Zbytočné stĺpce a indexy!
Začali sme teda na indexoch tabuľky obrázkov. Panebože, aké indexy sme stanovili v našej mladíckej nerozvážnosti? Prakticky každý stĺpec má index, aj keď sa v dotaze nikdy nepoužíva (test pomocou EXPLAIN SELECT). Stále sú tam stĺpce, ktoré sa nikdy neopýtajú. zlo!
Prečešte 60 000 riadkov kódu
Takže: Stefan a ja sa dostávame k obrázkovej tabuľke: S grepom nad celým kódom dolate kontrolujem všetky hovory k obrázkovej tabuľke. Ktoré indexy môžeme vymazať? Ktoré stĺpce už nie sú potrebné?
Výsledok: Máme tri stĺpce a päť indexov, ktoré sa nepoužívajú. Obzvlášť odvážny fulltextový index je možné vykázať do samostatnej tabuľky vertikálnym rozdelením na oddiely. Je to dôvod na potešenie, pretože sme našli toľko priestoru na zlepšenie? Alebo by sme sa mali hnevať na naše potiahnutie v systéme?
To nevadí: V sobotu ráno o 01:00 Stefan vykoná vyhlásenia ALTER TABLE. Po dvoch hodinách trvania dotazu je blesková diéta hotová. Výsledok:
Zníženie dátového súboru o 22%. Zníženie indexového súboru o 70%. To vedie k rýchlejším INSERT, rýchlejším zálohám a rýchlejšej TABUĽKE OPRAVY (čo je často problém s tabuľkami MyISAM).
Dnešný večer ukáže, či bude pre fotografov jednoduchšie fotografie pridať. som zvedavý.