Stránkování u velkých tabulek

publikováno: 2.3.2016

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

Reference

Kurz SQL byl jedním slovem výborný. Připravená smysluplná databáze spolu s příklady, včetně příkladů s vysokou obtížností - je tak možné dostatečně zabavit i pokročilejší studenty. Za pozitivní považuji opravdu

Michal

Školení bylo super, zopakoval jsem si základy a také se dozvěděl spoustu nového ohledně SQL. Obrovské plus bylo v přátelském přístupu školícího.

Vít

Se školením jsem nadmíru spokojen, nejen že je výklad formou, která zaujme, ale i lajk se v tom neztrácí a je schopen pochopit i těžší úlohy.

Miloš


Novinky

3.1.2018: Oracle XE 12c nebude, místo toho bude Oracle XE 18c
V roce 2018 nás čeká nová XE verze a nové verzování

4.4.2017: SAP HANA & Veverka (SQuirrel SQL)
Oficiální SAP HANA studio funguje, ale je hrozně pomalé. Další z nástrojů, kde je možné rozchodit SAP HANA je Veverka (SQuirrel SQL)

25.3.2017: SAP HANA referenční příručky
V současnosti je trošku složitější najít na webu referenční příručku k SAP HANA SQL, proto sem dávám odkazy.