Ladění SQL, nebo NoSQL: podle čeho poznat, že je čas změnit

Z Mazovia

Po dokončení nechte koupelnu několik dní větrat a podlahu nevystavujte stojaté vodě. První test odtoku proveďte pomalu, s menším množstvím vody, a sledujte, zda se voda nezastavuje u prahu. Pokud se drží, není problém v dlažbě, ale ve spádu nebo v mírně zvednutém prahu. Malé jádro nemá rezervu, kterou by schovalo chybu. Spád i obklad je proto lepší zkontrolovat před finálním spárováním, kdy je případná oprava ještě rychlá a levná.

Světlo v úzkém koutu rozhoduje o tom, zda se tam dá pracovat hodinu, nebo celý den. Stropní svítidlo bývá za zády nebo přímo nad hlavou a vrhá stín na klávesnici. Lepší je nástěnné rameno nebo lišta připevněná nad deskou tak, aby světlo dopadalo z boku a mírně před vás. Zdroj teplého světla dejte jinam než chladný monitor, jinak se oči neustále přizpůsobují. Žárovku ve stolní lampě vyměňte za takovou, která nebliká při focení mobilem — levné zdroje kmitají a při delší práci unavují oči víc, než se zdá.

Když indexy a přepis dotazů přestanou stačit Relační databáze zvládne mnohem víc, než se na první pohled zdá. Než začnete uvažovat o NoSQL, zkuste tyto kroky: ověřte, zda dotaz neprovádí plný průchod tabulkou kvůli funkci obalené kolem sloupce (např. WHERE year(datum) = 2024 místo rozsahu), přepište korelované poddotazy na JOIN, zaveďte materializovaný pohled nebo cache na úrovni aplikace. Často pomůže i rozdělení tabulky na menší celky nebo změna typu sloupce. Tyto úpravy jsou levné a vratné, na rozdíl od migrace celého úložiště.

V garsonce o rozloze kolem třiceti metrů jsem léta řešil stejný problém: věci se množí, podlaha mizí a každá skříň zabírá místo, které bych raději použil na pohyb. Horní úložné systémy mi nakonec uvolnily podlahu i hlavu, ale ne hned napoprvé. První police nad postelí spadla, protože jsem ji připevnil do sádrokartonu bez hmoždinek do nosného profilu. Od té doby jsem si dal na dvě věci pozor: nosnost a výšku, do které ještě bezpečně dosáhnu.

Nejprve si změřte, kde skutečně ztrácíte čas. Zapněte pomalý log dotazů, projděte plán vykonávání (explain) u nejčastějších SELECTů a sledujte poměr mezi čtením a zápisem. Typická chyba je optimalizovat dotazy, které se volají jednou za hodinu, zatímco ten, který běží tisíckrát za sekundu, zůstane bez indexu. Pokud vám chybí index na sloupci ve WHERE nebo JOIN, žádná změna technologie to nespraví — jen přesunete problém jinam.

Na stole držte pouze věci pro aktuální úkol. Ostatní pomůcky uložte do zásuvek nebo krabic, které jsou sice po ruce, ale zavřené. Velký stůl plný pastelek, papírů a nepořádku je častá chyba, která děti zahlcuje. Stejně tak neumisťujte do koutku nabíječku na telefon ani sluchátka, pokud je dítě při učení nepotřebuje. Světlo směřujte z boku nebo zepředu, ne za záda a ne přímo proti očím – odlesky na papíře i obrazovce únavu zvyšují.

U nízkoteplotních zdrojů se postup liší: voda o teplotě kolem šedesáti až sta stupňů se neposílá do turbíny, ale přímo do výměníkové stanice, odkud ohřívá vodu pro domy a bazény. Tento systém je jednodušší a levnější na provoz, proto ho na Islandu využívají i menší obce. Klíčové je, že se voda po ochlazení vrací zpět do podzemí, aby tlak v ložisku neklesal. Bez tohoto vracení by zdroj během let slábl.

Většina aplikací začíná na relační databázi a to je správně. SQL databáze nabízí transakce, cizí klíče a silné schéma, které při vývoji drží data pohromadě. Problém nastává ve chvíli, kdy se z požadavku na flexibilitu stane výmluva a z pomalého dotazu se stane každodenní rutina. Rozhodnutí mezi optimalizací SQL a přechodem na NoSQL by nemělo být otázkou módy, ale konkrétních čísel a chování aplikace.

Pozor na příliš mnoho pravidel. Koutek nemá být trest, ale běžné místo pro práci. Dítě by mělo vědět, že si sem může sednout i samo, když chce kreslit nebo číst. Zkuste společně určit, co se v koutku dělá a co ne, a pravidla napište na malou kartu, kterou pověsíte na zeď. Dospělý by měl jít příkladem: pokud si k dítěti sedáte s telefonem a prohlížíte zprávy, těžko se dá očekávat klid.

Pozor na dvě časté chyby při migraci. První je předpoklad, že NoSQL je vždy rychlejší — bez správně navrženého klíče a indexů bude pomalejší než dobře optimalizované SQL. Druhá je podcenění duplikace dat: v dokumentovém úložišti se data často kopírují, a pokud neohlídáte konzistenci při aktualizacích, vzniknou rozdíly, které se těžko dohledávají. Vždy si předem napište, jaké dotazy budete potřebovat, a podle nich navrhněte strukturu, ne naopak.

Kabely řešte dřív, než nábytek sestavíte. Prodlužovací lišta připevněná zezadu na nohu stolu nebo na zeď pod deskou odstraní změť na podlaze. Kabely od monitoru a nabíječky svažte páskem na suchý zip a veďte je za hranou desky. Vyhněte se tomu, aby kabely visely volně podél zdi — při každém pohybu se houpou a dřív nebo později vypadnou ze zásuvky. Pokud kout stojí u okna, počítejte s tím, že monitor bude přes den přeexponovaný; pomůže ho posunout mírně do strany nebo natočit, ne jen ztlumit jas.