kypyAudit zdarma

N+1 problém v adminu e-shopu: jeden dotaz místo tisíce

Přehled objednávek, který se s růstem e-shopu zpomaluje, obvykle netrpí špatným designem stránky — trpí špatným počtem databázových dotazů.

N+1 problém je jeden z nejčastějších a nejsnáz přehlédnutelných výkonnostních chyb v administrativních rozhraních. Jméno popisuje přesně, co se děje: jeden dotaz načte seznam záznamů (třeba 100 objednávek), a pak se pro KAŽDOU z nich pošle další dotaz na související data (jméno zákazníka, položky objednávky). Výsledek: 1 + 100 dotazů místo jednoho.

Proč to nejde vidět na první pohled

Se dvaceti objednávkami v databázi je rozdíl neznatelný — stránka se načte za zlomek sekundy tak jako tak. Problém se projeví až s růstem: tisíc objednávek znamená tisíc jedna dotazů, a admin, který byl při vývoji rychlý, se v produkci s reálným objemem dat začne zpomalovat. Bez záměrného testu na velkém objemu dat tohle projde nepovšimnuté až do chvíle, kdy si klient stěžuje.

Řešení: jeden agregovaný dotaz

Přehled objednávek na Fotobazoš.cz je postavený tak, aby zákazníka, položky i stav objednávky natáhl jedním agregovaným dotazem — ne dotazem na každou objednávku zvlášť. Admin tak zůstává rychlý bez ohledu na to, jestli má e-shop dvacet objednávek, nebo deset tisíc.

Proč tohle rozhoduje o tom, kdo web spravuje

Fotobazoš.cz obsluhuje majitelka bez technického zázemí, sama. Admin, který se s růstem objednávek zpomaluje, znamená frustraci z každodenní práce a nakonec potřebu volat vývojáře na to, co mělo fungovat samo. Výkon administrativního rozhraní není luxus pro velké firmy — je to podmínka, aby laik zvládl provoz e-shopu bez cizí pomoci.

Případová studie

Fotobazoš.cz

Zobrazit případovou studii →