Asi znáte LIMIT a OFFSET (terminologie PostgreSQL, u jiných databází to je podobné). Pomocí LIMIT jsme schopni udělat top-n processing (získat prvních N záznamů). A OFFSET použijeme když nechceme "prvních N záznamů", ale "prvních N záznamů následujících po M záznamech". V případě malých tabulek (cca. do 100 tisíc záznamů) je možné tento přístup používat, ale v případě větších tabulek (miliony záznamů a více) je bohužel nepoužitelný. Co v takové situaci použít? Něco chytřejšího :-)
Je zapotřebí mít číselný sloupec, který obsahuje pořadové číslo záznamu (u PostgreSQL je k tomu ideální SERIAL, u MySQL AUTOINCREMENT apod.). A poté můžeme udělat SELECT, ve kterém získáme například prvních 100,000 záznamů (utříděných podle ID) a uložíme si ID posledního záznamu. A pro další stránku uděláme SELECT, kde opět získáme prvních 100,000 záznamů od posledního uloženého záznamu a tak dále. Nevýhoda je, že se to musí malinko oprogramovat. Výhoda je rychlost získávání jednotlivých stránek, která u LIMIT a OFFSET postupně razantně degraduje, zatímco u tohoto přístupu je konstantní.
Pěkně popsané (včetně obrázků) to také je tady: http://use-the-index-luke.com/sql/partial-results/fetch-next-page
Školení mi pomohlo ujasnit si jak má správně probíhat testování kódu, představilo užitečné knihovny a nástroje. Vše bylo podáno zábavnou formou, takže nebyl problém udržet pozornost. Navíc byl výhodou dostatek
Jedno z nejlepších školení za poslední roky. Kromě seznámení se Springem apod. mě velmi příjemně překvapila hluboká znalost probírané látky a schopnost ji srozumitelně vysvětlit v případě ad hoc dotazů.
Přestože jsem Cčkař, tak jsem se na školení JUnit dozvěděl nové věci. Zejména co se týče metodiky jednotkového testování a některých odborných termínů.