Przejdź do zawartości
Menu główne
Menu główne
przypnij
ukryj
Nawigacja
Strona główna
Ostatnie zmiany
Losowa strona
Pomoc z MediaWiki
Mazovia
Szukaj
Szukaj
Utwórz konto
Zaloguj się
Narzędzia osobiste
Utwórz konto
Zaloguj się
Strony dla anonimowych edytorów
dowiedz się więcej
Edycje
Dyskusja
Edytujesz
5 zásad, jak zrychlit GraphQL dotazy a nezabít server
Strona
Dyskusja
polski
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Narzędzia
Narzędzia
przypnij
ukryj
Działania
Czytaj
Edytuj
Edytuj źródło
Wyświetl historię
Ogólne
Linkujące
Zmiany w linkowanych
Strony specjalne
Informacje o tej stronie
Uwaga:
Nie jesteś zalogowany. Jeśli wykonasz jakąkolwiek zmianę, Twój adres IP będzie widoczny publicznie. Jeśli
zalogujesz się
lub
utworzysz konto
, Twoje zmiany zostaną przypisane do konta, wraz z innymi korzyściami.
Filtr antyspamowy.
Nie
wpisuj tu nic!
Největší problém bývá na přechodu mezi podlahou, stěnami a velkým nábytkem. Tmavá podlaha, světlé stěny a tmavá sedačka bez barevného mezičlánku vytvoří ostrý kontrast, který místnost rozdělí na dvě poloviny. Řešení je jednoduché: přidejte koberec v odstínu, který leží mezi barvou podlahy a sedačky, a na stěnu pověste obraz s podobným tónem. Tím se přechod změkčí, aniž byste měnili nábytek. Stejný princip použijte u polic a knihoven – jejich barva by měla vycházet z podlahy, ne ze stěn, jinak budou „plavat" ve vzduchu.<br><br> Jak sladit dvě barvy, aniž by vznikl cha<br><br>Když se zařízení přes Bluetooth neobjeví, většina lidí začne vypínat a zapínat telefon nebo počítač. To občas pomůže, ale často je problém jinde. Než začnete cokoli reinstalovat, zkontrolujte tři věci, které selhávají nejčastěji: párovací režim, vzdálenost a stav nabití. Sluchátka, reproduktory i hodinky mají režim párování, který se aktivuje jen na několik sekund po zapnutí nebo dlouhým podržením tlačítka. Pokud ho nevyvoláte, zařízení se prostě neohlásí.<br><br>Další častá chyba je umístění. Pohovka postavená na přímém slunci nebo u radiátoru rychle ztrácí pevnost potahu i pěny. Pokud stojí na koberci s dlouhým vlasem, mechanismus se zanáší prachem a vlasy. Prach je nepřítel číslo jedna – stačí ho jednou za čas vysát štěrbinovou tryskou, ale málokdo to dělá. Stejně tak když teenager jí na pohovce, drobky se dostanou do kolejnic a rozkládání začne vázat.<br><br>Další chyba: ignorování hloubky a komplexity dotazu. Klient pošle dotaz, který rekurzivně prochází vztahy dokola. GraphQL sám o sobě limity nemá. Musíte zavést pravidla: maximální hloubka (např. 7 úrovní), maximální počet položek v seznamu (např. 100) a váhové skóre. To se počítá před spuštěním resolverů. Knihovny jako graphql-query-complexity to umí. Bez toho se server snadno položí.<br><br>Nezapomínejte na sledování výkonu. Zapněte tracing – Apollo Studio, GraphQL Yoga nebo OpenTelemetry. Sledujte p95 a p99 latence jednotlivých resolverů. Odhalíte tak pomalé části. Dále logujte dotazy, které překročí limit. Často zjistíte, že jeden klient posílá příliš agresivní dotazy. Pak stačí s ním komunikovat a upravit schéma nebo přidat pole s argumenty pro stránkování.<br><br>GraphQL v roce 2026 není novinka, ale mnoho týmů stále řeší pomalé dotazy a přetížené servery. Častý problém: resolver načítá data v cyklu, každý záznam zvlášť. To se projeví jako N+1 dotaz. Řešení je DataLoader – dávkové načítání klíčů v jednom kole. Implementujte ho pro každý typ, kde hrozí opakované dotazy. Není to složité, ale vyžaduje disciplínu: jeden DataLoader na entitu, konzistentní klíče.<br><br>První konkrétní příznaky přicházejí nenápadně. Přestanete cítit prsty na rukou, i když si je mnoho lidí snaží zahřát v kapsách. Špičky prstů zbělají nebo zfialoví. Následuje nekontrolovatelné chvění, které nejde zastavit vůlí. Člověk přestává být spolehlivý v jemné motorice: nejde mu zapnout zip, otevřít termosku, zavázat tkaničku. To je okamžik, kdy už nejde o pohodlí, ale o bezpečnost.<br><br>Jak nastavit limity a cache Limity nestačí nastavit, musí se vynutit. Na úrovni middleware odmítněte dotazy překračující váhu nebo hloubku s chybou 400. Zvažte i timeout na jeden resolver – pokud trvá déle než 2 sekundy, přerušte ho. Dále používejte perzistentní dotazy (persisted queries). Klient pošle hash místo celého dotazu. Server tak zná předem schválené dotazy a může je cachovat. To snižuje režii na parsování a validaci.<br><br>Cacheování v GraphQL je složitější než v REST. Nepoužívejte cache na úrovni HTTP slepě. Místo toho cachujte na úrovni resolveru nebo DataLoaderu. Krátká TTL (např. 5 sekund) pro dynamická data, delší pro statická. Pozor na autentizaci: cache klíč musí obsahovat ID uživatele nebo roli, jinak dojde k úniku dat. Typická chyba je sdílená cache pro všechny bez rozlišení oprávnění.<br><br>Na závěr: GraphQL optimalizace není jednorázová akce. Pravidelně revidujte schéma, odstraňujte nepotřebná pole a přidávejte indexy do databáze podle skutečných dotazů. Vyhněte se tomu, abyste do resolveru psali složitou logiku – tu patří do servisní vrstvy. A vždy testujte změny zátěží, ne jen jednotkovými testy. Výkon se nezlepší sám.
Opis zmian:
Wszelki wkład na Mazovia może być edytowany, zmieniany lub usunięty przez innych użytkowników. Jeśli nie chcesz, żeby Twój tekst był dowolnie zmieniany przez każdego i rozpowszechniany bez ograniczeń, nie umieszczaj go tutaj.
Zapisując swoją edycję, oświadczasz, że ten tekst jest Twoim dziełem lub pochodzi z materiałów dostępnych na warunkach
domeny publicznej
lub kompatybilnych (zobacz także
Mazovia:Prawa autorskie
).
PROSZĘ NIE WPROWADZAĆ MATERIAŁÓW CHRONIONYCH PRAWEM AUTORSKIM BEZ POZWOLENIA WŁAŚCICIELA!
Anuluj
Pomoc w edycji
(otwiera się w nowym oknie)
Przełącz ograniczenie szerokości strony