<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://shoutwiki.club/index.php?action=history&amp;feed=atom&amp;title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat%2C_rozhoduje_podoba_dotazu</id>
	<title>Když GraphQL začne zpomalovat, rozhoduje podoba dotazu - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://shoutwiki.club/index.php?action=history&amp;feed=atom&amp;title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat%2C_rozhoduje_podoba_dotazu"/>
	<link rel="alternate" type="text/html" href="https://shoutwiki.club/index.php?title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat,_rozhoduje_podoba_dotazu&amp;action=history"/>
	<updated>2026-10-30T05:22:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://shoutwiki.club/index.php?title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat,_rozhoduje_podoba_dotazu&amp;diff=2865&amp;oldid=prev</id>
		<title>JaimeBroome8 at 15:35, 27 October 2026</title>
		<link rel="alternate" type="text/html" href="https://shoutwiki.club/index.php?title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat,_rozhoduje_podoba_dotazu&amp;diff=2865&amp;oldid=prev"/>
		<updated>2026-10-27T15:35:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:35, 27 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pevná zábrana nestačí&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;rozhoduje i okolí lůž&lt;/del&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pracovní stůl &lt;/del&gt;v &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;malém bytě &lt;/del&gt;není &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;otázka estetiky&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ale geometrie&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Než začnete cokoli kupovat&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;změřte si místo &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hlavně si ujasněte&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kolik času u stolu opravdu strávíte&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pokud jde o dvě hodiny denně &lt;/del&gt;s &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;notebookem&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nepotřebujete stůl hluboký osmdesát centimetrů&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pokud pracujete osm hodin &lt;/del&gt;s &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;monitorem &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;klávesnicí&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;potřebujete plnohodnotnou hloubku i šířku &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;je lepší ubrat jinde&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Světlo &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;větrání &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;podceňují&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Dva kluci v jednom pokoji znamenají víc tepla&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;víc prachu &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;víc hluku&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Ke každé posteli by mělo dosáhnout vlastní čtecí světlo&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ideálně nastavitelné, aby si jeden mohl číst, když druhý spí&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Hlavní stropní světlo nahraďte několika menšími zdroji&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;které &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dají zapínat zvlášť&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Větrání řešte tak&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;aby &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dalo otevřít okno bez přerovnávání nábytku&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pokud &lt;/del&gt;je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;v pokoji málo místa, nepřidávejte další skříň &lt;/del&gt;— &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;raději zvyšte úložný prostor pod postelí &lt;/del&gt;a nad &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;stolem&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Přebytečný nábytek dělá pokoj menším, ne větším&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Nejčastější chybou je N+1 problém: resolver pro seznam položek volá databázi pro každou položku zvlášť&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Řešením je dávkování — sesbírat klíče z jednoho cyklu &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;načíst je jedním dotazem&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;V praxi to znamená zavést vrstvu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;která &lt;/del&gt;v &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;rámci jednoho požadavku odloží jednotlivé dotazy &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sloučí &lt;/del&gt;je. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Pozor &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;to&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že dávkování musí být vázané na kontext požadavku&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jinak si mezi souběžnými uživateli promícháte data&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Zkontrolujte také&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že dávkovač má limit velikosti&lt;/del&gt;, aby &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jeden požadavek nezahltil databázi tisíci klíči&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;První věc, která v GraphQL rozhoduje o rychlosti, není databáze ani server, ale tvar dotazu. Klient si často řekne o celý objekt i s vnořenými vazbami, protože to je pohodlné při vývoji. Na produkci se z toho stane několikanásobné načítání, které se sčítá. Než začnete cokoliv optimalizovat, zapněte si měření času na úrovni resolverů a logujte, které pole se volá kolikrát na jeden požadavek. Bez tohoto přehledu skončíte u hádání a přepisování schématu naslepo.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Šestá praktická úprava je clona proti zvědavým pohledům. Stačí napnutá šňůra mezi dvěma háky a &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ni látka, kterou na podzim sundáte a vyperete. Zkontrolujte, jestli zavěšená látka nezakrývá odtokový otvor nebo větrací mřížku. Sedmé řešení je úklid podle sezóny&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;na jaře vytáhněte vše, co přes zimu zůstalo venku, umyjte parapet &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;teprve potom rozhodujte, co se na balkon vrátí&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Většina malých balkonů se neplní proto, že jsou malé, ale proto, že se na ně ukládá bez kontroly&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nezapomínejte na výstup. Filtrování polí až po načtení z databáze znamená&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že jste zbytečně přenesli data, která klient nechce&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Resolver by měl vědět, která pole jsou vyžádaná, a podle toho omezit výběr už na úrovni dotazu. Stejně tak se vyhněte vracení velkých seznamů bez stránkování — kurzorové stránkování je pro GraphQL přirozenější než offsetové, protože zvládá rostoucí data bez posunů. Ověřte &lt;/del&gt;si ale, že &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;kurzor je stabilní &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;že řazení odpovídá tomu, podle čeho se stránkuje.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Uspořádání musí počítat s tím, že kluci rostou. Nábytek, který je dnes akorát, bude za dva roky malý. Proto se vyplatí volit jednoduché, variabilní kusy, které se dají přestavět nebo posunout. Psací stůl by měl být široký alespoň tak, aby se u něj dalo psát s otevřeným sešitem a vedle položeným počítačem&lt;/del&gt;. Pokud se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;do pokoje nevejdou dva stoly&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;zvažte dlouhou desku podél stěny, u které se vystřídají, a doplňte &lt;/del&gt;ji &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dvěma židlemi. Vyhněte se stolům, které jsou jen &lt;/del&gt;na &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;parádu &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nedá se u nich pořádně sedět.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pátým řešením je mobilní pracovní &lt;/del&gt;místo &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;na kolečkách. Úzký vozík s deskou a zásuvkami lze odsunout ke zdi, když se nepracuje. Hodí se do garsoniér, kde se funkce prostoru střídají. Pozor na kolečka &lt;/del&gt;– &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;musí mít brzdu, jinak se stůl při psaní rozjíždí. A kabely veďte v chráněné liště, aby se při každém přesunu nepřiskříply.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hloubka dotazu a limity&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;které se vyplatí zavést předem Klient může poslat dotaz hluboko vnořený a vyplatit celý graf. Zavedení maximální hloubky a maximálního počtu polí na dotaz je levné a odhalí chyby dřív, než se dostanou k uživatelům. Počítejte &lt;/del&gt;ale &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;s tím&lt;/del&gt;, že &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pevný limit &lt;/del&gt;se &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;těžko ladí: příliš nízký zablokuje legitimní obrazovky&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;příliš vysoký nic neřeší. Lepší je kombinovat hloubku s cenou dotazu — každému poli přiřadit váhu a odmítnout požadavek nad rozpočet. Cenu pak spočítáte ještě před spuštěním resolverů&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další vrstvou je ukládání do mezipaměti. GraphQL samo o sobě neumí cachovat odpovědi podle URL, protože vše jde na jeden koncový bod. Proto se vyplatí cachovat na úrovni resolverů podle skutečných vstupních parametrů a klíčovat podle identifikátorů, ne podle pořadí argumentů. U dotazů, které se často opakují, pomůže i trvalé ukládání dotazů: klient pošle krátký hash místo celého textu, server ho ověří proti registrovanému seznamu. Tím odpadá opakované parsování a validace.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nakonec počítejte s tím, že období nerovnoměrného buzení přijde znovu při nemoci, růstovém spurtu nebo změně režimu ve školce. Nevracejte se k dřívějším pravidlům, která už neplatí, a nesnažte se situaci řídit hodinkami. Držte se základního rámce&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;upravujte detaily podle skutečného chování dětí a vydržte alespoň dva týdny u jedné změny. Vyrušení obou dětí najednou bývá menší problém než neustálé střídání přístupů.&lt;/ins&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Poslední věc, kterou lidé podceňují: délka ranní přípravy. Když jeden potřebuje patnáct minut a druhý padesát, plánujte podle toho, kdo má delší rutinu, a tomu dejte koupelnu jako prvnímu. Vyhnete se tak čekání ve dveřích a pohledům, které vypadají jako obvinění. Spaní &lt;/ins&gt;v &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jedné místnosti &lt;/ins&gt;není &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;problém&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pokud si ráno nepřipadáte jako na nádraží&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Stačí si předem rozdělit roli&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;prostor a zvuk – &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hádka o budík zmizí sama.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Následuje specifická část&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;tedy lehké lezení&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Vyberte si jeden nebo dva snadné problémy nebo cestu výrazně pod svou úrovní a přelezte je &lt;/ins&gt;s &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;důrazem na plynulost&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ne na výkon&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dobré je střídat delší výdrže na velkých chytech &lt;/ins&gt;s &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;krátkými pauzami &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;postupně zvyšovat náročnost. Pokud se objeví ostrá bolest v prstech nebo v rameni&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;rozcvičku přerušte – tupá únava je v pořádku, bolest ne. Mnoho lezců chybuje v tom, že rozcvičku odbydou na jednom chytu &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pak hned zkouší svůj maximální projekt&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Častou chybou je spěch při otáčení. Nábytek se otáčí na místě jen tehdy, když pod ním leží kluzká podložka, jinak se musí přenést. Další chyba je podcenění prahu &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;přechodových lišt. Právě tam &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nábytek zasekne a škrábne podlahu nejvíc. Řešením je přejezdová rampa z prkna nebo silného kartonu, která práh překlene&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Po celou dobu platí&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;že podlaha musí být suchá &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;čistá – drobek písku pod fólií působí jako brusivo&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hloubka dotazu a limity&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;které se vyplatí zavést předem Klient může poslat dotaz hluboko vnořený a vyplatit celý graf&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Zavedení maximální hloubky a maximálního počtu polí na dotaz je levné a odhalí chyby dřív&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;než &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dostanou k uživatelům&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Počítejte ale s tím&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;že pevný limit &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;těžko ladí: příliš nízký zablokuje legitimní obrazovky, příliš vysoký nic neřeší&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Lepší &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kombinovat hloubku s cenou dotazu &lt;/ins&gt;— &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;každému poli přiřadit váhu &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;odmítnout požadavek &lt;/ins&gt;nad &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;rozpočet&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Cenu pak spočítáte ještě před spuštěním resolverů&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Sledujte, zda jsou barvy teplé, nebo studené&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Teplé tóny (béžová, okrová, cihlová) &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;studené (šedá, modrozelená, chladná bílá) se v jedné místnosti bijí, pokud mezi nimi není most&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Tím mostem bývá dřevo&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kov nebo textilie &lt;/ins&gt;v &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;neutrálním tónu. Typická chyba: chladná šedá stěna &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;k ní teplá oranžová židle bez jakéhokoli přechodu – výsledek vypadá jako dvě místnosti v jedné. Řešením &lt;/ins&gt;je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;přidat kus v přírodním odstínu, který oba světy spojí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Spaní dvou lidí v jedné místnosti vypadá jednoduše, dokud se nezačne řešit ranní vstávání&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jeden má budík &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;šestou&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;druhý do osmi. Jeden hned rozsvítí&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;druhý potřebuje ticho&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Právě tady vzniká většina hádek&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;které pak zbytečně otravují celý den. Nejde přitom o kompromis „všichni vstaneme v sedm&amp;quot;, ale o rozdělení ranních kroků tak&lt;/ins&gt;, aby &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;se navzájem nerušily&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;První věc, která v GraphQL rozhoduje o rychlosti, není databáze ani server, ale tvar dotazu. Klient si často řekne o celý objekt i s vnořenými vazbami, protože to je pohodlné při vývoji. Na produkci se z toho stane několikanásobné načítání, které se sčítá. Než začnete cokoliv optimalizovat, zapněte si měření času na úrovni resolverů a logujte, které pole se volá kolikrát na jeden požadavek. Bez tohoto přehledu skončíte u hádání a přepisování schématu naslepo.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Ranní rituály bez hádek stojí &lt;/ins&gt;na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jedné věci&lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;každý má svůj prostor &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;svůj čas&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Není potřeba dělat všechno společně&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jeden si dá sprchu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;druhý si ještě dvacet minut pospí&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dohodněte &lt;/ins&gt;si ale &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jasné hranice&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;například &lt;/ins&gt;že &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;od určité hodiny už platí ticho &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nikdo nepouští hlasitě hudbu ani nevaří&lt;/ins&gt;. Pokud se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;domluva opakovaně nedodržuje&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zapište si &lt;/ins&gt;ji na &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;papír &lt;/ins&gt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dejte na viditelné &lt;/ins&gt;místo – &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ne jako trest&lt;/ins&gt;, ale &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jako připomínku&lt;/ins&gt;, že &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ráno &lt;/ins&gt;se &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nemá řešit&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;co se dalo vyřešit večer&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další vrstvou je ukládání do mezipaměti. GraphQL samo o sobě neumí cachovat odpovědi podle URL, protože vše jde na jeden koncový bod. Proto se vyplatí cachovat na úrovni resolverů podle skutečných vstupních parametrů a klíčovat podle identifikátorů, ne podle pořadí argumentů. U dotazů, které se často opakují, pomůže i trvalé ukládání dotazů: klient pošle krátký hash místo celého textu, server ho ověří proti registrovanému seznamu. Tím odpadá opakované parsování a validace.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JaimeBroome8</name></author>
	</entry>
	<entry>
		<id>https://shoutwiki.club/index.php?title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat,_rozhoduje_podoba_dotazu&amp;diff=2196&amp;oldid=prev</id>
		<title>ForrestRiddoch: Created page with &quot;Pevná zábrana nestačí, rozhoduje i okolí lůž&lt;br&gt;&lt;br&gt;Pracovní stůl v malém bytě není otázka estetiky, ale geometrie. Než začnete cokoli kupovat, změřte si mís...&quot;</title>
		<link rel="alternate" type="text/html" href="https://shoutwiki.club/index.php?title=Kdy%C5%BE_GraphQL_za%C4%8Dne_zpomalovat,_rozhoduje_podoba_dotazu&amp;diff=2196&amp;oldid=prev"/>
		<updated>2026-10-27T15:04:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Pevná zábrana nestačí, rozhoduje i okolí lůž&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pracovní stůl v malém bytě není otázka estetiky, ale geometrie. Než začnete cokoli kupovat, změřte si mís...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Pevná zábrana nestačí, rozhoduje i okolí lůž&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pracovní stůl v malém bytě není otázka estetiky, ale geometrie. Než začnete cokoli kupovat, změřte si místo a hlavně si ujasněte, kolik času u stolu opravdu strávíte. Pokud jde o dvě hodiny denně s notebookem, nepotřebujete stůl hluboký osmdesát centimetrů. Pokud pracujete osm hodin s monitorem a klávesnicí, potřebujete plnohodnotnou hloubku i šířku a je lepší ubrat jinde.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Světlo a větrání se podceňují. Dva kluci v jednom pokoji znamenají víc tepla, víc prachu a víc hluku. Ke každé posteli by mělo dosáhnout vlastní čtecí světlo, ideálně nastavitelné, aby si jeden mohl číst, když druhý spí. Hlavní stropní světlo nahraďte několika menšími zdroji, které se dají zapínat zvlášť. Větrání řešte tak, aby se dalo otevřít okno bez přerovnávání nábytku. Pokud je v pokoji málo místa, nepřidávejte další skříň — raději zvyšte úložný prostor pod postelí a nad stolem. Přebytečný nábytek dělá pokoj menším, ne větším.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější chybou je N+1 problém: resolver pro seznam položek volá databázi pro každou položku zvlášť. Řešením je dávkování — sesbírat klíče z jednoho cyklu a načíst je jedním dotazem. V praxi to znamená zavést vrstvu, která v rámci jednoho požadavku odloží jednotlivé dotazy a sloučí je. Pozor na to, že dávkování musí být vázané na kontext požadavku, jinak si mezi souběžnými uživateli promícháte data. Zkontrolujte také, že dávkovač má limit velikosti, aby jeden požadavek nezahltil databázi tisíci klíči.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;První věc, která v GraphQL rozhoduje o rychlosti, není databáze ani server, ale tvar dotazu. Klient si často řekne o celý objekt i s vnořenými vazbami, protože to je pohodlné při vývoji. Na produkci se z toho stane několikanásobné načítání, které se sčítá. Než začnete cokoliv optimalizovat, zapněte si měření času na úrovni resolverů a logujte, které pole se volá kolikrát na jeden požadavek. Bez tohoto přehledu skončíte u hádání a přepisování schématu naslepo.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Šestá praktická úprava je clona proti zvědavým pohledům. Stačí napnutá šňůra mezi dvěma háky a na ni látka, kterou na podzim sundáte a vyperete. Zkontrolujte, jestli zavěšená látka nezakrývá odtokový otvor nebo větrací mřížku. Sedmé řešení je úklid podle sezóny: na jaře vytáhněte vše, co přes zimu zůstalo venku, umyjte parapet a teprve potom rozhodujte, co se na balkon vrátí. Většina malých balkonů se neplní proto, že jsou malé, ale proto, že se na ně ukládá bez kontroly.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nezapomínejte na výstup. Filtrování polí až po načtení z databáze znamená, že jste zbytečně přenesli data, která klient nechce. Resolver by měl vědět, která pole jsou vyžádaná, a podle toho omezit výběr už na úrovni dotazu. Stejně tak se vyhněte vracení velkých seznamů bez stránkování — kurzorové stránkování je pro GraphQL přirozenější než offsetové, protože zvládá rostoucí data bez posunů. Ověřte si ale, že kurzor je stabilní a že řazení odpovídá tomu, podle čeho se stránkuje.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Uspořádání musí počítat s tím, že kluci rostou. Nábytek, který je dnes akorát, bude za dva roky malý. Proto se vyplatí volit jednoduché, variabilní kusy, které se dají přestavět nebo posunout. Psací stůl by měl být široký alespoň tak, aby se u něj dalo psát s otevřeným sešitem a vedle položeným počítačem. Pokud se do pokoje nevejdou dva stoly, zvažte dlouhou desku podél stěny, u které se vystřídají, a doplňte ji dvěma židlemi. Vyhněte se stolům, které jsou jen na parádu a nedá se u nich pořádně sedět.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Pátým řešením je mobilní pracovní místo na kolečkách. Úzký vozík s deskou a zásuvkami lze odsunout ke zdi, když se nepracuje. Hodí se do garsoniér, kde se funkce prostoru střídají. Pozor na kolečka – musí mít brzdu, jinak se stůl při psaní rozjíždí. A kabely veďte v chráněné liště, aby se při každém přesunu nepřiskříply.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hloubka dotazu a limity, které se vyplatí zavést předem Klient může poslat dotaz hluboko vnořený a vyplatit celý graf. Zavedení maximální hloubky a maximálního počtu polí na dotaz je levné a odhalí chyby dřív, než se dostanou k uživatelům. Počítejte ale s tím, že pevný limit se těžko ladí: příliš nízký zablokuje legitimní obrazovky, příliš vysoký nic neřeší. Lepší je kombinovat hloubku s cenou dotazu — každému poli přiřadit váhu a odmítnout požadavek nad rozpočet. Cenu pak spočítáte ještě před spuštěním resolverů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další vrstvou je ukládání do mezipaměti. GraphQL samo o sobě neumí cachovat odpovědi podle URL, protože vše jde na jeden koncový bod. Proto se vyplatí cachovat na úrovni resolverů podle skutečných vstupních parametrů a klíčovat podle identifikátorů, ne podle pořadí argumentů. U dotazů, které se často opakují, pomůže i trvalé ukládání dotazů: klient pošle krátký hash místo celého textu, server ho ověří proti registrovanému seznamu. Tím odpadá opakované parsování a validace.&lt;/div&gt;</summary>
		<author><name>ForrestRiddoch</name></author>
	</entry>
</feed>