GraphQL dotazy, které zbytečně brzdí aplikaci, a jak to zastavit

Z Mazovia

Existují tři chyby, které se opakují pořád dokola. První je skládací stůl, který se po každém použití musí uklidit – lidé ho přestanou skládat a práce zůstane na stole. Druhá je koupě příliš velké židle, která ve skutečnosti blokuje průchod. Třetí je odkládání dokumentů na jednu hromadu s tím, že se to protřídí později. Místo hromady zaveďte jednoduché pravidlo: každý papír má svou složku, každá složka své místo v zásuvce. Jednou za týden, ideálně v pátek před koncem práce, složky projděte a nepotřebné vyhoďte.

Kde se autenticita ztrácí nejčastě

Před nákupem si napište míry na papír a vezměte je s sebou. V prodejně porovnejte čísla na obalu s vaším papírem, ne s tím, co vám řekne obsluha nebo co je napsané na regálu. Pokud kupujete přes internet, hledejte tabulku rozměrů přímo v popisu produktu a zkontrolujte, zda se míry vztahují k povlaku, nebo k přikrývce. Když si nejste jistí, objednejte jednu sadu, vyzkoušejte ji na posteli a teprve pak dokupujte další.

Pátým signálem je kontrolka tlaku oleje. Ta se nesmí ignorovat ani na okamžik — rozsvítí-li se za jízdy, zastavte co nejdřív a motor nechte běžet jen na volnoběh minimálně. Zanedbání tohoto kroku patří k nejdražším chybám vůbec. Stejně tak nepodceňujte kouř z výfuku, který je modravý a objevuje se hlavně po přidání plynu.

Druhým častým omylem je cachování na špatné vrstvě. HTTP cache podle URL u GraphQL nefunguje, protože všechny dotazy jdou na jeden koncový bod. Místo toho se vyplatí cachovat výsledky resolverů podle konkrétních parametrů, případně použít perzistované dotazy, kdy klient posílá identifikátor schváleného dotazu místo celého textu. Tím se zmenší provoz, zjednoduší validace a sníží riziko nechtěných drahých dotazů z produkce.

Hloubka dotazu rozhoduje dřív než optimalizace Než začnete cokoli cachovat, omezte, co klient vůbec může poslat. GraphQL ve výchozím nastavení dovolí rekurzivní dotazy do libovolné hloubky a klient si tak snadno vyžádá data, která server sestavuje dlouhé sekundy. Zaveďte limit hloubky a limity počtu polí na úrovni validace dotazu. Stejně důležité je omezení složitosti, tedy vážený součet polí podle toho, jak drahá je jejich resoluce. Tato pravidla patří do produkčního prostředí, ne jen do testovacího, a měla by vracet srozumitelnou chybu, aby klient věděl, co má zjednodušit.

Výměna oleje se neřídí jen počítadlem kilometrů. Způsob jízdy, časté studené starty a kvalita filtru mění skutečný interval natolik, že předepsaný údaj z výrobce je pouze orientační. Praktický postup je jednoduchý: jednou za dva až tři týdny zkontrolujte olej za studena, ideálně po stání přes noc, a výsledek si zapamatujte. Pak porovnávejte. Právě změna oproti předchozímu stavu je nejspolehlivější signál, ne samotný stav v jednom okamžiku.

Prvním varovným signálem je barva a konzistence. Nový olej je průsvitný, medový až zlatohnědý. Pokud je na měrce černý jako káva a při rozetření mezi prsty zanechává tmavou stopu, olej už absorboval saze a přestává mazat. Pozor ale na častou chybu: olej v naftovém motoru ztmavne velmi rychle a tmavá barva sama o sobě ještě neznamená, že je po něm. Rozhoduje kombinace barvy, viskozity a zápachu.

Kdy se rozhodnout pro sestup a jak ho prové

Praktický závěr:řiďte se nejkratším z ukazatelů — intervalem výrobce, stavem oleje na měrce nebo chováním motoru. Kdo jezdí hlavně po městě na krátké trasy, mění olej dřív, než říká příručka. Filtr měňte vždy s olejem, jinak si novou náplň znečistíte hned v prvních kilometrech.

Nejčastější příčinou pomalého GraphQL API není databáze ani síť, ale dotaz, který si vyžádá víc dat, než je potřeba. Vývojář napíše dotaz, který funguje, otestuje ho na malé sadě dat a nasadí do provozu. Tam se pak teprve ukáže, že každé pole resolvuje samostatně a server jich vykoná stovky. Prvním krokem k optimalizaci je podívat se na skutečný počet resolver volání, ne na dobu odezvy. Zapněte si logování resolverů nebo tracing a zjistěte, která pole se volají opakovaně ve smyčce. Bez tohoto měření se ladí naslepo.

Co prozradí měrka a co už hlásí motor sám Druhým signálem je hladina. Pokud mezi kontrolami ubývá olej rychleji než dřív, něco se děje — unik těsněním, opotřebené pístní kroužky nebo vadné turbo. Dolévat a jezdit dál je typická chyba, která problém jen oddálí. Třetím signálem je zápach po spálenině nebo ostrý kovový pach z měrky; ten ukazuje na přehřívání oleje nebo na to, že se do něj dostává benzín při krátkých jízdách. Čtvrtým je zvuk: klepání, dunění nebo hlučnější chod po startu, které po ohřátí nezmizí, často souvisí s řídkým olejem a nedostatečným tlakem.