<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://jak.mazovia.edu.pl/index.php?action=history&amp;feed=atom&amp;title=GraphQL_dotazy%2C_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server</id>
	<title>GraphQL dotazy, které zbytečně zatěžují server - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://jak.mazovia.edu.pl/index.php?action=history&amp;feed=atom&amp;title=GraphQL_dotazy%2C_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server"/>
	<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=GraphQL_dotazy,_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server&amp;action=history"/>
	<updated>2026-11-06T04:35:16Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=GraphQL_dotazy,_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server&amp;diff=1208785&amp;oldid=prev</id>
		<title>HarleyAvelar35 o 20:02, 27 paź 2026</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=GraphQL_dotazy,_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server&amp;diff=1208785&amp;oldid=prev"/>
		<updated>2026-10-27T20:02:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&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;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 20:02, 27 paź 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;Linia 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Na závěr jedno pravidlo&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které ušetří nejvíc zklamání: méně odstínů&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;více textur&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tři barvy &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pět různých materiálů vydrží v obývacím pokoji roky&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kdežto sedm barev &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dva materiály začnou po pár měsících nudit nebo dráždit&lt;/del&gt;. Když &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;si nejsi jistý&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uber jednu barvu &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přidej jednu strukturu — tím se interiér srovná spolehlivěji než nákupem dalšího dekorativního předmětu&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Problém N+1 se neřeší na úrovni databáze Klasická past je resolver, který pro každou položku seznamu zavolá vlastní dotaz. Na malých datech to není vidět, při stovkách záznamů se odezva zhroutí. Řešením je dávkování a kešování v rámci jednoho požadavku: sesbírat klíče z všech položek a načíst je jedním dotazem, výsledek rozdělit mezi resolvery. Kdo tohle přeskočí a začne přidávat indexy do databáze, obvykle jen oddálí okamžik, kdy se problém vrátí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Začněte u zdroje. Spočítejte příkon všech pásků &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jednom zdroji&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Potřebujete výkon pásků vynásobený koeficientem přibližně 1,2 až 1,3, protože zdroj by neměl pracovat &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hranici svých možností. Levný zdroj deklarovaný &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;určitý proud často dodá méně&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zejména při delším vedení&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud pásek bliká jen při plném jasu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;je to téměř jistě slabý &lt;/del&gt;nebo &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;přetížený zdroj&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zkuste pásek &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;chvíli připojit ke kratšímu a silnějšímu zdroji a porovnejte chování&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Socializace štěněte neznamená seznámit ho &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vším naráz. Znamená to postupně &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;v malých dávkách vytvářet neutrální nebo příjemné zkušenosti s tím, co bude pes potkávat celý život&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rozhoduje ne počet podnětů&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale kvalita každé zkušenosti. Štěně, které &lt;/del&gt;se &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;během jedné procházky setká s dvaceti cizími lidmi&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;si neodnese dvacet dobrých zážitků, ale spíš jeden velký stres. Proto je lepší méně situací &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;více klidu&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Druhá častá &lt;/del&gt;chyba je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neomezená stránkování. Kurzorové stránkování funguje dobře&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale jen když klient nemůže požádat o tisíce položek najednou&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vynutit maximální velikost stránky na serveru je nutnost&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne volitelná funkce&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně tak je vhodné odmítnout dotazy, které žádají seznam bez jakéhokoli omezení, místo abychom je tiše zpracovali &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doufali&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že to klient nepoužije v produkci&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec je dobré pamatovat na to, že optimalizace není jednorázový úkol. Provoz se mění, klienti přibývají a dotazy, které byly loni v pořádku, mohou být letos brzdou. Pravidelná kontrola pomalých dotazů, limitů a dávkování udrží rozhraní rychlé i bez zásadních přepisů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Druhá častá chyba je přemíra kovu &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;malé ploše. Kovové nohy u stolu&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kovové regály&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kovové lampy a kovové rámy najednou vytvoří chladnou kancelář&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nechte mezi kovovými prvky odstup a prokládejte je textilem&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;knihami&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keramikou nebo rostlinami&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně tak nepřekládejte dřevo dřevem bez přestávky – tři dřevěné plochy vedle sebe splynou &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;místnost ztratí hloubku&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mezi ně patří koberec, závěs nebo malba&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je omezit hloubku a šířku dotazů. GraphQL sám o sobě nebrání tomu, aby klient zanořil pět úrovní vztahů a u každé si vyžádal celý seznam. Pomáhá jednoduché pravidlo: nastavit maximální hloubku dotazu a maximální počet polí, které server ještě přijme. Konkrétní čísla závisí na doméně, ale bez tohoto omezení se dřív nebo později objeví dotaz, který z jednoho požadavku udělá stovky databázových dotazů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Většina pomalých GraphQL rozhraní nemá problém v databázi ani v síti&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Problém vzniká už ve chvíli, kdy klient pošle dotaz, který si vyžádá víc dat, než skutečně potřebuje, a server to poslušně vykoná. Optimalizace proto nezačíná na úrovni infrastruktury&lt;/del&gt;, ale &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;u toho, co &lt;/del&gt;klient &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;posílá a co resolver skutečně dělá s každým polem&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si ke stěně přinesete vzorník nebo vzorek látky a postavíte ho &lt;/del&gt;na &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;místo&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kde bude čelo stát&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Barvy se v obchodě a doma chovají jinak. Pokud &lt;/del&gt;je &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stěna teplá (do béžova&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;okrova&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pudrova), studené šedé čelo může působit špinavě &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;zeleně. Naopak k studené šedomodré stěně teplé dřevo nebo krémové čelo vytvoří příjemný kontrast. Nekombinujte dva „skoro stejné&quot; odstíny – rozdíl bude vypadat jako nedopatření&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne jako záměr&lt;/del&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;U polí&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která jsou drahá na výpočet, se vyplatí zavést sledování, která pole se &lt;/del&gt;skutečně &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;používají&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Často se ukáže&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že klient posílá celý objekt včetně polí&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která nikdy nečte, jen protože to tak někdo kdysi napsal. Zde pomáhá měření na úrovni resolverů &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;následné zjednodušení schématu. Méně polí znamená méně práce &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hlavně méně místa pro chyby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když jste prošli zdroj&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vedení i spoje &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pásek stále bliká, vyměňte postupně jednotlivé části &lt;/del&gt;a &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;po každé změně sledujte výsledek&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Měňte vždy jen jednu věc, &lt;/del&gt;jinak &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nepoznáte&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co pomohlo. Zapište si, při jakém jasu a v jaké části pásku se problém objevuje. Tyto informace pak ušetří spoustu dohadování. Stabilní světlo není otázkou štěstí, ale správně navrženého napájení a čistých spojů&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&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 style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Většina pomalých GraphQL rozhraní nemá problém v databázi ani v síti. Problém vzniká už ve chvíli, kdy klient pošle dotaz, který si vyžádá víc dat, než skutečně potřebuje, a server to poslušně vykoná. Optimalizace proto nezačíná na úrovni infrastruktury&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ale u toho&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co klient posílá a co resolver skutečně dělá s každým polem&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nosnost &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tuhost řešte dřív než materi�&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Další typický problém je zanedbávání retaineru a okolí dásní. Pokud se nosí vyjímatelná retenční deska&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;čistí se po každém vyjmutí pod tekoucí vodou &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jemným kartáčkem, nikdy horkou vodou, která deformuje materiál. U pevných rovnadel se kolem dásní osvědčuje jednosvazkový kartáček, kterým se odstraní povlak přesně u okraje zámečku, kde vzniká zánět nejčastěji&lt;/ins&gt;. Když &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;dásně krvácejí při čištění&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;není to důvod přestat — naopak je potřeba čistit jemněji &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;důkladněji&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Problém N+1 se neřeší na úrovni databáze Klasická past je resolver, který pro každou položku seznamu zavolá vlastní dotaz. Na malých datech to není vidět, při stovkách záznamů se odezva zhroutí. Řešením je dávkování a kešování v rámci jednoho požadavku: sesbírat klíče z všech položek a načíst je jedním dotazem, výsledek rozdělit mezi resolvery. Kdo tohle přeskočí a začne přidávat indexy do databáze, obvykle jen oddálí okamžik, kdy se problém vrátí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pozor &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;příliš mnoho kontrastu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Tmavě mořený nábytek &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bílé stěně vypadá efektně &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;fotkách, ale v reálném pokoji vzniká ostrý přechod&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;který unavuje oči&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Lepší je snížit rozdíl – k tmavému dřevu dejte středně světlou&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lehce šedou &lt;/ins&gt;nebo &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;béžovou stěnu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;A naopak: světlý nábytek &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;tmavé stěně potřebuje doplnit světlými textiliemi, jinak se ztratí&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Po roce &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;také vyplatí projít nastavení &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;oprávnění&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zkontrolujte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jestli &lt;/ins&gt;se &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;data synchronizují spolehlivě&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jestli má aplikace povolený přístup k pohybu &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jestli není prsten příliš volný&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Častá &lt;/ins&gt;chyba je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nosit prsten na špatné ruce nebo ho mít přes den příliš dlouho na nabíječce&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;což zkresluje průměry&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pokud se výsledky dlouhodobě rozcházejí s vaším pocitem&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;neřešte to hned nákupem jiného zařízení&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nejprve si pořiďte několik nocí záznamu s pevným režimem &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;porovnejte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co se skutečně změnilo&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec je dobré pamatovat na to, že optimalizace není jednorázový úkol. Provoz se mění, klienti přibývají a dotazy, které byly loni v pořádku, mohou být letos brzdou. Pravidelná kontrola pomalých dotazů, limitů a dávkování udrží rozhraní rychlé i bez zásadních přepisů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;U polí, která jsou drahá &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;výpočet&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;se vyplatí zavést sledování&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která pole se skutečně používají&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Často se ukáže, že klient posílá celý objekt včetně polí&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která nikdy nečte&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jen protože to tak někdo kdysi napsal&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zde pomáhá měření na úrovni resolverů &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;následné zjednodušení schématu&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Méně polí znamená méně práce a hlavně méně místa pro chyby&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je omezit hloubku a šířku dotazů. GraphQL sám o sobě nebrání tomu, aby klient zanořil pět úrovní vztahů a u každé si vyžádal celý seznam. Pomáhá jednoduché pravidlo: nastavit maximální hloubku dotazu a maximální počet polí, které server ještě přijme. Konkrétní čísla závisí na doméně, ale bez tohoto omezení se dřív nebo později objeví dotaz, který z jednoho požadavku udělá stovky databázových dotazů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Druhá častá chyba je neomezená stránkování&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Kurzorové stránkování funguje dobře&lt;/ins&gt;, ale &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jen když &lt;/ins&gt;klient &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;nemůže požádat o tisíce položek najednou&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Vynutit maximální velikost stránky &lt;/ins&gt;na &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;serveru je nutnost&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ne volitelná funkce&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stejně tak &lt;/ins&gt;je &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;vhodné odmítnout dotazy&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;které žádají seznam bez jakéhokoli omezení&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;místo abychom je tiše zpracovali &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;doufali&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;že to klient nepoužije v produkci&lt;/ins&gt;.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Malá předsíň snese jen to&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;co &lt;/ins&gt;skutečně &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;používáte každý den&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Než začnete cokoli kupovat&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;změřte si šířku&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hloubku &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;výšku volné stěny &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;poznamenejte si&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kde se otevírají dveře &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;kam až dosáhne ruka při zavírání. Změřte také vzdálenost od futer &lt;/ins&gt;a &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;od topení či elektrického rozvaděče&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Teprve z těchto čísel vycházejte při výběru; &lt;/ins&gt;jinak &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;skončíte s krásnou skříní&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;která blokuje průchod nebo nejde plně otevřít&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>HarleyAvelar35</name></author>
	</entry>
	<entry>
		<id>https://jak.mazovia.edu.pl/index.php?title=GraphQL_dotazy,_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server&amp;diff=1206709&amp;oldid=prev</id>
		<title>RosellaMcLendon: Utworzono nową stronę &quot;Na závěr jedno pravidlo, které ušetří nejvíc zklamání: méně odstínů, více textur. Tři barvy a pět různých materiálů vydrží v obývacím pokoji roky, kdežto sedm barev a dva materiály začnou po pár měsících nudit nebo dráždit. Když si nejsi jistý, uber jednu barvu a přidej jednu strukturu — tím se interiér srovná spolehlivěji než nákupem dalšího dekorativního předmětu.&lt;br&gt;&lt;br&gt;Problém N+1 se neřeší na úrovni databá…&quot;</title>
		<link rel="alternate" type="text/html" href="https://jak.mazovia.edu.pl/index.php?title=GraphQL_dotazy,_kter%C3%A9_zbyte%C4%8Dn%C4%9B_zat%C4%9B%C5%BEuj%C3%AD_server&amp;diff=1206709&amp;oldid=prev"/>
		<updated>2026-10-27T18:53:42Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Na závěr jedno pravidlo, které ušetří nejvíc zklamání: méně odstínů, více textur. Tři barvy a pět různých materiálů vydrží v obývacím pokoji roky, kdežto sedm barev a dva materiály začnou po pár měsících nudit nebo dráždit. Když si nejsi jistý, uber jednu barvu a přidej jednu strukturu — tím se interiér srovná spolehlivěji než nákupem dalšího dekorativního předmětu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Problém N+1 se neřeší na úrovni databá…&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Na závěr jedno pravidlo, které ušetří nejvíc zklamání: méně odstínů, více textur. Tři barvy a pět různých materiálů vydrží v obývacím pokoji roky, kdežto sedm barev a dva materiály začnou po pár měsících nudit nebo dráždit. Když si nejsi jistý, uber jednu barvu a přidej jednu strukturu — tím se interiér srovná spolehlivěji než nákupem dalšího dekorativního předmětu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Problém N+1 se neřeší na úrovni databáze Klasická past je resolver, který pro každou položku seznamu zavolá vlastní dotaz. Na malých datech to není vidět, při stovkách záznamů se odezva zhroutí. Řešením je dávkování a kešování v rámci jednoho požadavku: sesbírat klíče z všech položek a načíst je jedním dotazem, výsledek rozdělit mezi resolvery. Kdo tohle přeskočí a začne přidávat indexy do databáze, obvykle jen oddálí okamžik, kdy se problém vrátí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte u zdroje. Spočítejte příkon všech pásků na jednom zdroji. Potřebujete výkon pásků vynásobený koeficientem přibližně 1,2 až 1,3, protože zdroj by neměl pracovat na hranici svých možností. Levný zdroj deklarovaný na určitý proud často dodá méně, zejména při delším vedení. Pokud pásek bliká jen při plném jasu, je to téměř jistě slabý nebo přetížený zdroj. Zkuste pásek na chvíli připojit ke kratšímu a silnějšímu zdroji a porovnejte chování.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Socializace štěněte neznamená seznámit ho se vším naráz. Znamená to postupně a v malých dávkách vytvářet neutrální nebo příjemné zkušenosti s tím, co bude pes potkávat celý život. Rozhoduje ne počet podnětů, ale kvalita každé zkušenosti. Štěně, které se během jedné procházky setká s dvaceti cizími lidmi, si neodnese dvacet dobrých zážitků, ale spíš jeden velký stres. Proto je lepší méně situací a více klidu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Druhá častá chyba je neomezená stránkování. Kurzorové stránkování funguje dobře, ale jen když klient nemůže požádat o tisíce položek najednou. Vynutit maximální velikost stránky na serveru je nutnost, ne volitelná funkce. Stejně tak je vhodné odmítnout dotazy, které žádají seznam bez jakéhokoli omezení, místo abychom je tiše zpracovali a doufali, že to klient nepoužije v produkci.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nakonec je dobré pamatovat na to, že optimalizace není jednorázový úkol. Provoz se mění, klienti přibývají a dotazy, které byly loni v pořádku, mohou být letos brzdou. Pravidelná kontrola pomalých dotazů, limitů a dávkování udrží rozhraní rychlé i bez zásadních přepisů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Druhá častá chyba je přemíra kovu na malé ploše. Kovové nohy u stolu, kovové regály, kovové lampy a kovové rámy najednou vytvoří chladnou kancelář. Nechte mezi kovovými prvky odstup a prokládejte je textilem, knihami, keramikou nebo rostlinami. Stejně tak nepřekládejte dřevo dřevem bez přestávky – tři dřevěné plochy vedle sebe splynou a místnost ztratí hloubku. Mezi ně patří koberec, závěs nebo malba.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Prvním krokem je omezit hloubku a šířku dotazů. GraphQL sám o sobě nebrání tomu, aby klient zanořil pět úrovní vztahů a u každé si vyžádal celý seznam. Pomáhá jednoduché pravidlo: nastavit maximální hloubku dotazu a maximální počet polí, které server ještě přijme. Konkrétní čísla závisí na doméně, ale bez tohoto omezení se dřív nebo později objeví dotaz, který z jednoho požadavku udělá stovky databázových dotazů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Většina pomalých GraphQL rozhraní nemá problém v databázi ani v síti. Problém vzniká už ve chvíli, kdy klient pošle dotaz, který si vyžádá víc dat, než skutečně potřebuje, a server to poslušně vykoná. Optimalizace proto nezačíná na úrovni infrastruktury, ale u toho, co klient posílá a co resolver skutečně dělá s každým polem.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si ke stěně přinesete vzorník nebo vzorek látky a postavíte ho na místo, kde bude čelo stát. Barvy se v obchodě a doma chovají jinak. Pokud je stěna teplá (do béžova, okrova, pudrova), studené šedé čelo může působit špinavě a zeleně. Naopak k studené šedomodré stěně teplé dřevo nebo krémové čelo vytvoří příjemný kontrast. Nekombinujte dva „skoro stejné&amp;quot; odstíny – rozdíl bude vypadat jako nedopatření, ne jako záměr.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;U polí, která jsou drahá na výpočet, se vyplatí zavést sledování, která pole se skutečně používají. Často se ukáže, že klient posílá celý objekt včetně polí, která nikdy nečte, jen protože to tak někdo kdysi napsal. Zde pomáhá měření na úrovni resolverů a následné zjednodušení schématu. Méně polí znamená méně práce a hlavně méně místa pro chyby.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Když jste prošli zdroj, vedení i spoje a pásek stále bliká, vyměňte postupně jednotlivé části a po každé změně sledujte výsledek. Měňte vždy jen jednu věc, jinak nepoznáte, co pomohlo. Zapište si, při jakém jasu a v jaké části pásku se problém objevuje. Tyto informace pak ušetří spoustu dohadování. Stabilní světlo není otázkou štěstí, ale správně navrženého napájení a čistých spojů.&lt;/div&gt;</summary>
		<author><name>RosellaMcLendon</name></author>
	</entry>
</feed>