Co uvidíte na noční obloze bez dalekohledu
Optimalizace GraphQL dotazů není o kouzlení, ale o pochopení, kde se ztrácí čas. V roce 2026 je nejčastější příčinou pomalých odpovědí přehnaně hluboké zanoření a načítání dat, která klient nakonec ani nepoužije. Základní pravidlo zní: dotazujte se vždy jen na to, co skutečně potřebujete, a to včetně seznamů položek. Místo obecného products edges node { … } si vynucujte konkrétní atributy a omezte počet vrácených záznamů pomocí argumentů first nebo last. Pokud to API umožňuje, používejte paginaci přes kurzory, ne přes číslované stránky – kurzory jsou stabilnější a efektivnější při změnách dat.
Posledním bodem je akustická a vizuální izolace. V místnosti, kde se vaří i spí, je těžké se soustředit. Zkuste oddělit pracovní kout závěsem nebo paravánem, který nejen vytvoří optickou hranici, ale také tlumí zvuky z domácnosti. Pokud máte otevřenou polici, využijte boxy na dokumenty – nejen že schovají nepořádek, ale také rozbijí jednotvárný vzhled. Nezapomínejte, že pracovní stůl by měl být i motivující – umístěte na něj malou rostlinu, kterou snadno zalijete. Tím kout získá lidský rozměr a přestane být jen dalším kusem nábytku.
Začněte tím, že si najdete místo s minimálním světelným znečištěním. Ideální je pole nebo kopec alespoň pár kilometrů od obce. Po příchodu si sedněte nebo lehněte a počkejte 15–20 minut, než si oči zvyknou na tmu. Během té doby se vyhněte pohledu do mobilu nebo na baterku – každý záblesk světla vám adaptaci zhatí. Pokud potřebujete světlo, použijte červenou čelovku, která oči tolik nerozruší.
Typickou chybou je ignorování možnosti využít persistentní dotazy (persisted queries). Místo toho, abyste posílali celý text dotazu při každém požadavku, uložíte si dotaz na serveru a klient posílá jen jeho hash. To nejenže zkrátí délku požadavku, ale také umožní serveru dotaz předzpracovat a naplánovat jeho provedení efektivněji. Pokud vaše API persistentní dotazy nepodporuje, zvažte alespoň použití jednoduchého cacheovacího mechanismu na úrovni HTTP – ale pozor: cache je platná jen pro přesně stejný dotaz. Proto je vhodné kombinovat ji s výše zmíněnými fragmenty, aby klienti neměli tendenci vytvářet stovky mírně odlišných dotazů, které cache rozbíjejí.
Co prozradí změny v chování a spánku Všímejte si, jak pes spí. Pokud se budí častěji než dřív, přechází po bytě v noci, nebo naopak spí výrazně déle a je apatický, může jít o skrytou bolest, problémy se štítnou žlázou nebo srdeční slabost. Zvýšená podrážděnost, vrčení na ostatní zvířata nebo naopak vyhledávání samoty jsou častými projevy chronické bolesti. Pozor na časté olizování tlapek, břicha nebo kloubů – pokud není pes zrovna ve fázi pelichání nebo nemá blechy, může to být první známka alergií, kožních problémů nebo i vnitřního zánětu.
Začněte pozorovat svého psa v klidovém stavu. Všímejte si, jak vstává z lehu – pokud se zvedá pomaleji, přešlapuje na místě nebo má ztuhlé zadní nohy, může jít o začínající kloubní problémy nebo artrózu. Podobně si všímejte, zda pes bez problémů vyskakuje do auta, na gauč nebo do schodů. Jakákoli změna v pohybovém stereotypu, byť sebejemnější, je důvodem k podrobnějšímu sledování.
Na závěr si dejte pozor na jeden častý omyl: rychlost dotazu není jen o tom, co server vrátí, ale i o tom, jak klient s odpovědí naloží. V roce 2026 už není přijatelné, aby si klient stahoval všechna data a teprve potom je filtroval. Naučte se používat direktivu @include a @skip pro podmíněné načítání částí dotazu podle aktuálního stavu UI. Pokud zobrazujete seznam a detail, načtěte pro seznam jen minimální pole a detail dotazujte až při otevření. Tím zásadně snížíte objem přenesených dat i zátěž serveru. Dobrým zvykem je také pravidelně kontrolovat, jestli vaše API nevrací pole, která už žádný klient nepoužívá – taková pole pak odstraňte, protože zbytečně prodlužují dobu serializace a zvětšují odpověď.
Dalším praktickým krokem je měření a analýza samotných dotazů. Než začnete cokoliv optimalizovat, zapněte si logování doby trvání jednotlivých resolverů a velikosti odpovědí. Zjistíte, že nejpomalejší operace jsou často ty, které vypadají nevinně – třeba filtrování podle data, které nejde využít index v databázi. Zaměřte se na to, abyste v dotazu vždy předávali co nejužší filtry a řazení, která odpovídají indexům. Tady platí jednoduché pravidlo: čím méně práce musí server udělat, tím rychlejší je odpověď. Nezapomínejte také na kompresi odpovědí – moderní HTTP/2 a komprese gzip či brotli dokážou zmenšit objem přenášených dat o desítky procent, a to bez jediné změny v dotazu.