<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KalaFairbairn</id>
	<title>Rettungsdienst-Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.rettungsdienstblog.eu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=KalaFairbairn"/>
	<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Spezial:Beitr%C3%A4ge/KalaFairbairn"/>
	<updated>2026-11-11T09:14:38Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=5_z%C3%A1sad,_jak_zrychlit_GraphQL_dotazy_a_u%C5%A1et%C5%99it_v%C3%BDkon&amp;diff=492175</id>
		<title>5 zásad, jak zrychlit GraphQL dotazy a ušetřit výkon</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=5_z%C3%A1sad,_jak_zrychlit_GraphQL_dotazy_a_u%C5%A1et%C5%99it_v%C3%BDkon&amp;diff=492175"/>
		<updated>2026-10-19T09:10:54Z</updated>

		<summary type="html">&lt;p&gt;KalaFairbairn: Die Seite wurde neu angelegt: „GraphQL je pohodlný, ale jeho flexibilita svádí k dotazům, které vypadají elegantně a přitom vytáhnou z databáze desetkrát víc dat, než je potřeba. V roce 2026 už nestačí jen zapnout cache na úrovni klienta. Rozhoduje to, co se děje na serveru mezi příchodem dotazu a odpovědí. Následující zásady vycházejí z běžné praxe a nejčastějších chyb, které se opakují i u zkušených týmů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Před dokončením objednávky…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GraphQL je pohodlný, ale jeho flexibilita svádí k dotazům, které vypadají elegantně a přitom vytáhnou z databáze desetkrát víc dat, než je potřeba. V roce 2026 už nestačí jen zapnout cache na úrovni klienta. Rozhoduje to, co se děje na serveru mezi příchodem dotazu a odpovědí. Následující zásady vycházejí z běžné praxe a nejčastějších chyb, které se opakují i u zkušených týmů.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Před dokončením objednávky zkontrolujte reklamační podmínky a možnost vrácení. U některých nákupů platí, že zboží nelze vrátit bez udání důvodu, nebo se vrací na náklady kupujícího. To se může promítnout do skutečné ceny víc než rozdíl v dopravě. Stejně tak si ověřte, zda obchod zveřejňuje kontakt a má jasná pravidla. Pokud ano, je větší šance, že případná reklamace proběhne bez zbytečných průtahů. Porovnání cen tak není jen o číslech, ale o celkové jistotě nákupu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začněte tím, že si sednete na zem a podíváte se na pokoj z výšky očí dítěte. Uvidíte dvě věci: kam se dá pohodlně dostat rukou a co překáží. Hrací plocha má být na zemi, ne na posteli. Postel je na spaní a její okolí na odkládání. Koberec nebo podlaha s rovným povrchem stačí. Důležité je, aby na tuto plochu dítě dosáhlo bez přelézání nábytku a aby se dalo kdykoli uklidit během několika minut.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hloubka sedu kolem 60–70 cm je pro ležení ideální. Méně než 55 cm znamená, že se kluk bude muset krčit. Větší hloubka než 80 cm už je na sezení nepohodlná a při vstávání nutí zvedat se dopředu. Sklon opěradla by měl být mírný, ne kolmý. Příliš vzpřímené opěradlo nutí k sezení, ne k ležení. Naopak příliš zakloněné opěradlo znamená, že se hlava opírá o hranu a krk bolí.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Na závěr si nastav monitoring, který sleduje dobu běhu jednotlivých resolverů a počet databázových dotazů na jeden požadavek. Bez těchto čísel se optimalizace mění v hádání. Sleduj také pomalé dotazy v produkci a průběžně upravuj váhy složitosti. GraphQL schéma se vyvíjí a to, co bylo loni levné, může být dnes úzké hrdlo. Pravidelná revize je levnější než hašení výpadku.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Persistentní dotazy a správná práce s cache jsou třetí pilíř. Místo posílání celého textu dotazu při každém volání pošli jen jeho identifikátor. Server tak může výsledek cachovat podle konkrétního dotazu a parametrů, ne podle volného textu. U mutací naopak cache zneplatňuj cíleně podle typu entity, ne plošně. Plošné zneplatnění je častá chyba, která zaručí, že cache nikdy nic neušetří. Stejně tak pozor na autorizaci: cachovaná odpověď nesmí uniknout jinému uživateli, takže do klíče cache patří i identita a oprávnění.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Začni tím, že si změříš skutečné náklady jednotlivých resolverů. GraphQL umožňuje vnořovat pole do hloubky a každé vnoření může znamenat samostatný dotaz do databáze. Typický problém je N+1: rodičovský seznam načte padesát záznamů a pro každý se pak resolver ptá zvlášť na související data. Řešením je dávkování požadavků pomocí nástroje, který sesbírá klíče z jednoho cyklu vykonávání a pošle je do databáze jedním dotazem. Bez tohoto kroku nepomůže žádná optimalizace na úrovni sítě.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Nejčastější chyba je měření jen v rozích místnosti. Právě uprostřed bývá strop nejvíc propadlý, a to se při obvodu nepozná. Další chybou je spoléhat na to, že tmel vyrovná křivost. Sádrokarton se musí montovat do roviny, ne do křivé plochy, kterou pak někdo vyrovnává. Rovněž se nevyplácí šetřit na počtu závěsů: čím větší spuštění, tím hustší musí být podpěry, jinak se obklad časem prohne.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Druhá věc je výběr dat. GraphQL resolver často vrací celý objekt i tehdy, když klient žádá jen dvě pole. Pomáhá analyzovat, která pole jsou v dotazu skutečně vybraná, a promítnout je do databázového dotazu. U relačních databází to znamená sestavit seznam sloupců dynamicky, u dokumentových zase omezit projekci. Pokud to nejde, použij alespoň datovou vrstvu, která zbytek zahodí dřív, než se dostane do paměti aplikace. Každý zbytečně přenesený řádek se násobí počtem souběžných požadavků.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Hračky, které se nevejdou do ruky, se neuklid&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Omez hloubku a složitost dotazu ještě před spuštěním Než dotaz vůbec dojde k resolverům, projdi ho validátorem, který spočítá jeho složitost. Každému poli přiřaď váhu podle toho, kolik práce stojí, a nastav limit pro celkovou složitost i maximální hloubku vnoření. Tím zabráníš tomu, aby jediný klient poslal dotaz, který položí databázi. Pozor na chybu, kdy se limit nastaví příliš nízko a zablokuje legitimní dotazy s mnoha malými poli. Limit se musí ladit podle reálného provozu, ne od stolu.&lt;/div&gt;</summary>
		<author><name>KalaFairbairn</name></author>
	</entry>
	<entry>
		<id>https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:KalaFairbairn&amp;diff=492174</id>
		<title>Benutzer:KalaFairbairn</title>
		<link rel="alternate" type="text/html" href="https://wiki.rettungsdienstblog.eu/index.php?title=Benutzer:KalaFairbairn&amp;diff=492174"/>
		<updated>2026-10-19T09:10:51Z</updated>

		<summary type="html">&lt;p&gt;KalaFairbairn: Die Seite wurde neu angelegt: „Autor blogu praktickým bydlením se zabývá denně. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejvíc mě baví ukazovat chytrá řešení, která zvládne každý.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor blogu praktickým bydlením se zabývá denně. Sdílím zde, jak skloubit funkčnost s teplem domova. Nejvíc mě baví ukazovat chytrá řešení, která zvládne každý.&lt;/div&gt;</summary>
		<author><name>KalaFairbairn</name></author>
	</entry>
</feed>