Editing
Co se stane, když GraphQL dotazy neomezíte včas
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Nakonec se vyhněte tomu, že optimalizujete jen na straně serveru a ignorujete klienta. I sebelepší resolver je k ničemu, když klient posílá zbytečně složité dotazy. Zaveďte jednotný způsob, jakým klienti dotazy skládají, a hlídejte, aby se do produkce nedostaly dotazy, které nesplňují dohodnuté limity. Pravidelná kontrola provozu a úprava limitů podle skutečného chování je to, co z krátkodobého zrychlení udělá dlouhodobě udržitelný stav.<br><br>Základem je větrání. Sebelepší ocet se sodu nepřekryjí pach, který vzniká při vaření bez digestoře nebo otevřeného okna. Než začnete čistit, otevřete okno na deset minut a teprve pak aplikujte roztoky. Také nenechávejte ocet v otevřené nádobě přes noc — vsákne se do dřeva, textilu a spíš pach přidá, než odstraní.<br><br>Častou chybou je ukládat věci podle toho, kam se vejdou, a ne podle toho, jak často je používáte. Sezónní věci patří do nejhůř dostupných míst, denní potřeby naopak na dosah ruky. Další chyba je kupovat úložné boxy dřív, než změříte prostor. Box, který nepasuje, nakonec skončí na podlaze a zabere víc místa než předtím. Vyhněte se také otevřeným košům na drobnosti v obývacím pokoji, pokud nemáte pevný systém – rychle se z nich stane sbírka nepořádku.<br><br>Hloubkové limity místo zákazů Místo plošného vypínání drahých polí zaveďte limity hloubky a složitosti dotazu. GraphQL umožňuje spočítat, jak hluboko se dotaz zanořuje a kolik uzlů může teoreticky vrátit. Pokud dotaz překročí nastavený práh, server ho odmítne ještě před spuštěním resolverů. Tím se vyhnete jak obřím odpovědím, tak útokům, které se snaží server zahltit záměrně složitou strukturou. Prahy nastavte podle reálných potřeb klientů, ne podle dojmu. Příliš přísný limit rozbije legitimní use-cases, příliš mírný nic neřeší.<br><br>Jak správně načasovat spánek podle neurofyziolog<br><br>Zajímavé je, že stejný princip se nevyplácí všem. Pokud bys chtěl filtrovat v mělkých teplých vodách s řídkým výskytem potravy, bylo by to ztrátové. Plejtvák proto podniká dlouhé migrace mezi oblastmi, kde je krilu dostatek. Bez zubů tedy nejde o ochuzení, ale o přesnou specializaci na konkrétní typ prostředí a kořisti. Když se tato rovnováha naruší, například změnou teploty vody, pozná to celý ekosystém.<br><br>Základem je zavést měření. Bez dat o tom, jaké dotazy přicházejí a kolik zdrojů spotřebovávají, se optimalizace mění v hádání. Sledujte hloubku vnoření, počet polí v odpovědi a dobu, kterou tráví jednotlivé resolvery. Užitečné je logovat i to, kolik procent vrácených dat klient skutečně zpracuje. Když zjistíte, že odpověď má tisíce uzlů a klient jich použije pár desítek, máte jasný cíl.<br><br>Než cokoli koupíte, vyzkoušejte, jak se k úložnému prostoru dostanete. Klekněte si k posteli a předstírejte, že taháte vak. Pokud musíte nadzvedávat matraci nebo odsouvat celou postel, úložný prostor nevyužijete. Radši zvolte nižší lůžko s otevřeným prostorem a ploché textilní vaky, které vytáhnete jedním tahem. Ušetříte čas i nervy a prádlo zůstane v suchu.<br><br>Nejčastější příčina pomalého GraphQL API není databáze, ale to, že klient si řekne o víc dat, než skutečně použije. GraphQL umožňuje přesně specifikovat, která pole mají být vrácena, ale málokdo tuto možnost využívá. Výsledkem jsou dotazy, které tahají stovky zbytečných polí, a resolver, který tráví čas nad daty, jež se v odpovědi zahodí. První krok k optimalizaci není technický, ale organizační: projít reálný provoz a najít dotazy, které vracejí výrazně více, než kolik klient následně zobrazí.<br><br>Lůžko s úložným prostorem pod roštem vypadá jako ideální řešení pro malý byt. Jenže mezi roštem a podlahou bývá často jen pár centimetrů. Do takové mezery se vejde jen plochý kufr, ne běžný zavírací box. Než začnete nakupovat úložné systémy, změřte si světlou výšku pod lůžkem. Měřte v rozích i uprostřed, protože rámy nebývají rovné a střed se často prohýbá. Rozdíl dvou centimetrů rozhodne o tom, zda box zasunete, nebo zaseknete.<br><br>Typickou chybou je cpát pod postel sezónní oblečení a boty. Boty potřebují větrání, jinak v uzavřeném prostoru zasmrádnou. Svetry a zimní bundy zase lákají moly, kteří se v klidném tmavém prostoru rychle množí. Do úložného prostoru pod lůžkem proto dávejte jen věci, které vydrží stlačení a které nepotřebujete každý týden. Prostěradla, ručníky, náhradní povlečení v ochranném pytli. Cokoli, co používáte denně, bude při vytahování z pod postele otravné a brzy to přestanete uklízet.<br><br>Praktické řešení je rozdělit prostor na dvě zóny. Do přední části, kam dosáhnete bez kleknutí, dejte to, co potřebujete častěji. Do zadní části dejte sezónní věci v uzavřených vacích. Mezi zóny položte nízký dřevěný nebo plastový přepážkový pás, aby se věci neposouvaly dozadu. Vaky označte štítkem, ne provázkem, který se utrhne. Pokud je pod lůžkem zásuvka, zkontrolujte její pojezdy. Prach a vlasy je ucpou a zásuvka přestane jezdit. Vysávejte je dvakrát ročně a kolečka občas promažte suchým mazivem.
Summary:
Please note that all contributions to Madagascar are considered to be released under the GNU Free Documentation License 1.3 or later (see
My wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
English
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Getting Madagascar
download
Installation
GitHub repository
SEGTeX
Introduction
Package overview
Tutorial
Hands-on tour
Reproducible documents
Hall of Fame
User Documentation
List of programs
Common programs
Popular programs
The RSF file format
Reproducibility with SCons
Developer documentation
Adding programs
Contributing programs
API demo: clipping data
API demo: explicit finite differences
Community
Conferences
User mailing list
Developer mailing list
GitHub organization
LinkedIn group
Development blog
Twitter
Slack
Tools
What links here
Related changes
Special pages
Page information