
# Škálovanie a limity

storh je úložisko založené na súboroch, nie relačný dotazovací nástroj. Praktické
hranice s referenčnými číslami z [benchmarkov](https://storh.inline0.dev/sk/docs/benchmarks)
(50-tisíc záznamov, Apple M1 Pro):

- Prístup ku konkrétnym záznamom je v praxi neobmedzený, ak súborový systém zvláda počet súborov a kolekcia používa delenie podľa koncových znakov UUID. Čítanie konkrétneho záznamu trvá niekoľko mikrosekúnd; trvalý zápis jedného záznamu je obmedzený synchronizáciou fsync na niekoľko tisíc za sekundu.
- Skenovanie segmentovaného denníka, čítanie pomocou kurzora a čítanie časového rozsahu pohodlne zvládajú približne milión záznamov, ak sú veľkosti segmentov nastavené podľa pracovného zaťaženia. Hromadné pridávanie dosahuje desaťtisíce záznamov za sekundu; obnova neúplného koncového segmentu pri opätovnom otvorení spracuje státisíce záznamov za sekundu.
- Operácie s frontom pridávajú kompaktné udalosti do jedného trvalého denníka, takže vloženie, prevzatie, dokončenie, opätovné zaradenie a vyčistenie frontu nevyžadujú samostatný súbor pre každú úlohu a nevytvárajú nápor operácií v adresári. Hromadné prevzatie a dokončenie rozložia náklady na zamykanie a fsync na celé dávky.
- Skenovanie polí v jednotlivých súboroch v `DocStore` sa spomaľuje nad približne 10-tisíc záznamov, pretože každé zodpovedajúce skenovanie musí prechádzať jednotlivé súbory. Deklarujte [indexy](https://storh.inline0.dev/sk/docs/indexes) pre polia, podľa ktorých filtrujete; indexované dotazy rovnosti sa vykonajú približne za milisekundu bez ohľadu na veľkosť kolekcie.
- storh nie je určené na ad hoc relačné dotazy, spájanie, filtrovanie náročné na sekundárne indexy ani analytické skenovanie mnohých polí. Keď potrebujete takéto vzory čítania, presúvajte kolekcie do zrkadla [SQL](https://storh.inline0.dev/sk/docs/sql-mirror); ak potrebujete transakcie nad viacerými záznamami, uchovávajte hlavné dáta v skutočnej databáze.

Použite `DocStore`, keď prevládajú čítania konkrétnych záznamov, `SegmentedLog`, keď prevládajú pridávanie a zoradené čítania, a `Queue` na jednoduché trvalé smerovanie práce. Porovnanie vedľa seba nájdete v časti
[Výber modulu](https://storh.inline0.dev/sk/docs/engines#choosing-an-engine).
