Jak zoptymalizovat GraphQL dotazy, aby databáze zbytečně netrpěla

From shoutwiki.club
Revision as of 13:56, 27 October 2026 by CaseyArent52260 (talk | contribs) (Created page with "Než začnete vybírat barvy, rozhodněte se, jaký má pokoj plnit účel. Jiné odstíny potřebuje malá školačka, která v něm hlavně spí, jiné dospívající, kter...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Než začnete vybírat barvy, rozhodněte se, jaký má pokoj plnit účel. Jiné odstíny potřebuje malá školačka, která v něm hlavně spí, jiné dospívající, která tam tráví čas s kamarádkami. Zapište si dvě nebo tři činnosti, které se v pokoji budou dít nejčastěji, a od nich odvíjejte celkovou náladu. Světlé a chladnější tóny pokoj opticky zvětší a zklidní, teplé barvy dodají útulnost, ale ve velké ploše působí těžkopádně. Praktické je začít od toho, co v pokoji už zůstane – podlaha, skříň, postel – protože barvu nábytku jen těžko měníte.

Koupelna je místo, kde se nejrychleji hromadí obaly. Šampon v plastové lahvi, tělové mléko v tubě, vlhčené ubrousky, břitvy na jedno použití. Přírodní kosmetika sama o sobě zero waste nezaručí – i přírodní produkt může přijít v plastu. Rozhoduje proto způsob používání a to, co si skutečně koupíte. Nejde o to vyhodit všechno, co doma máte, a nakoupit znovu „ekologicky". To je první a nejčastější chyba. Dopoužívejte to, co máte, a měňte věci postupně, jak se spotřebovávají.

Začněte tím, že si po dobu jednoho týdne zapíšete do notesu čtyři údaje: kolik vody pes vypije, kolik toho sní, kolikrát denně se vyprázdní a jak dlouho a jak ochotně se pohybuje. Zapisujte konkrétní čísla, ne dojmy. Teprve z těchto záznamů poznáte, zda pes pije nápadně víc (častý signál problémů s ledvinami, cukrovky nebo dělohy), nebo naopak méně. Stejně tak sledujte moč – její barvu, frekvenci a to, zda pes nezaujímá při močení neobvyklou polohu. Častou chybou je srovnávat psa s jinými psy. Srovnávejte ho výhradně s ním samotným z doby, kdy byl v pořádku.

Následuje lehké lezení na snadných cestách, ale s jasným pravidlem: žádný pád, žádné maximální úsilí. Dvě až tři délky v nízké obtížnosti, s důrazem na přesnost nohou a plynulé dýchání. Mezi nimi krátká pauza, ne dlouhé sezení. Tady se často chybuje v tom, že lezec začne „na rozehřátí" řešit těžký boulder a zničí si tím celý zbytek dne. Rozcvička nemá být test.

Nakonec obaly, které přicházejí s nákupem. Pokud můžete, kupte tuhý přípravek bez obalu nebo v papíru. Skleněné lahve od olejů a vod používejte opakovaně – na domácí čisticí prostředky, na přelévání. Nákup ve velkém balení snižuje odpad na jednotku obsahu, ale jen když produkt skutečně spotřebujete. Kupovat zásobu „do foroty" je opak zero waste. Vodítkem je jednoduché pravidlo: než něco koupíte, zkuste si položit otázku, kolik obalu z toho zbude a zda ho umíte reálně recyklovat ve svém okolí. Když ne, hledejte jinou formu – tuhou, plněnou, nebo opakovaně použitelnou.

Třetí možností je skládací nebo výklopný stůl, který po práci zmizí ze zorného pole. Vyplatí se, když byt slouží i k návštěvám a každá plocha navíc působí rušivě. Pozor na panty a zajištění — levné provedení se po měsících začne prohýbat a deska přestane držet v rovině. Při montáži do sádrokartonu použijte kotvy určené pro tento materiál, jinak se stůl vytrhne i s kusem stěny. Zátěž vždy rozložte do více bodů.

Pozor na aliasy a fragmenty. Klient může jeden resolver zavolat vícekrát pod různými jmény a obcházet tak naivní limity. Počítejte tedy s tím, že pole se stejným resolverem se sčítají. U fragmentů se vyplatí jejich rozbalení před validací, jinak limit obejdete nechtěně i vy sám při testování.

Druhá strana optimalizace je na klientovi. Persistované dotazy nebo jejich hashování snižují objem přenášených dat a umožňují serveru cachovat výsledky podle identifikátoru dotazu. Když klient posílá stále stejný tvar dotazu, je zbytečné ho parsovat a validovat při každém volání. Zároveň tím získáte přehled o tom, které dotazy jsou skutečně používané a které lze z grafu odstranit.

Nejčastější chybou je takzvaný N+1 problém. Resolver pro seznam položek zavolá databázi jednou a pak pro každou položku znovu, aby dohledal navázaný objekt. Řešením je dávkování a cachování v rámci jednoho požadavku — načíst všechny potřebné identifikátory najednou a výsledky seskupit. V praxi to znamená posunout logiku z jednotlivých resolverů do vrstvy, která umí počkat, než se dotazy nasbírají, a odeslat je jako jeden celek.

U hygieny platí stejná logika. Papírové kapesníčky nahradí látkové, jednorázové odličovací tampony pratelné bavlněné. Místo plastové žiletky existuje kovová břitva s vyměnitelnými čepelemi – ta vyžaduje zvyk a opatrnost, ale odpad tvoří jen samotná čepel, kterou odevzdáte ve sběrném dvoře. Zubní kartáček s vyměnitelnou hlavicí nebo bambusový kartáček snižuje plast, ale pozor: bambusové kartáčky se v domácím kompostu rozkládají jen pomalu, pokud vůbec. Reálný přínos je hlavně v tom, že si nekupujete nový kartáček každé dva měsíce, ale jen hlavici.