Co už je v MariaDB veliká tabulka?

Co už je v MariaDB veliká tabulka?
« kdy: 12. 01. 2022, 14:30:45 »
tak nam jedna tabulka pekne bobtna, roste nejakych 600 000 denne, to asi neni problem, ale uz ma pres 1 miliardu radku.

je to nejak mimoradne hodne na MariaDB nebo je to bezny standard u vetsi enterprise?
« Poslední změna: 12. 01. 2022, 17:26:13 od Petr Krčmář »


Re:co uz je velika tabulka (MariaDB)
« Odpověď #1 kdy: 12. 01. 2022, 15:15:29 »
To je ještě malá tabulka :), v absolutních číslech, už dnes se potkáváme s tabulkami o 10TB velikostech. Ona to velikost je ale nepodstatná, i u titěrné tabulky mohou mí problémy s výkonem, záleží jak jí používám.

Při takovémhle počtu záznamů bude velký problém jakákoliv změna struktury tabulky, doporučuji se podívat na pt-online-schema-change od Percony. Generování nových indexů je porovat, vhodnější je pouze indexy měnit. Pokud má vysoké přírustky, tak mergování B-tree stromů pro indexy začíná být nejdražší operace vůbec, vyplatí se záznamy vkládat pohromadě. Samozřejmě partitioning je tvůj kamarád, vždy je lepší tabulky vertikálně nebo horizontálně rozdělit na více jednotek. Ty právé problémy totiž nastávají při obnově nebo vytvoření nové replikace.

Ymzk

Re:co uz je velika tabulka (MariaDB)
« Odpověď #2 kdy: 12. 01. 2022, 15:30:13 »
tak nam jedna tabulka pekne bobtna, roste nejakych 600 000 denne, to asi neni problem, ale uz ma pres 1 miliardu radku.

je to nejak mimoradne hodne na MariaDB nebo je to bezny standard u vetsi enterprise?

To je trosku zvlastna otazna.
No ale aspon aby sme sa dostali k aspon trosku rozumnej odpovedi je dolezite vediet na akom HW ti to bezi :)

Re:co uz je velika tabulka (MariaDB)
« Odpověď #3 kdy: 12. 01. 2022, 15:38:32 »
K _Tomáš_ bych doplnil, ze je potreba vzdy zvazit, zda ty vsechny data bezne potrebuji nebo ne.

Ja mam tabulku s daty ze senzoru, ktera je uz take dost velka, ale v aplikaci bezne pouzivam data jen za par dni zpetne. Takze starsi data si archivuji v jine instanci databaze a uplne nejstarsi data posilam v podobne komprimovanych CSV do S3, tzv. "kdybych je nekdy potreboval".

Hlavni duvod mam, ze takto tu produkcni databazi obnovym ze zalohy za par minut. Neobnovuji gigabajty dat, ktere v aplikaci bezne nepotrebuji.

Re:co uz je velika tabulka (MariaDB)
« Odpověď #4 kdy: 12. 01. 2022, 16:22:14 »
a jsou ty data vubec k necemu...
a pro jakej hardware to je problem...

no v realnym svete outsource and SaaS ( a debilnich manazeru) je to trochu jinak nez kdyz si to jedete "na vlastnim"

1/ postavili mu hospodu, ale chodili mu tam lidi
takze vendor za par milionu dolaru rocne drzi zakaznika ve vendor lockin a soucasne mu rika (cernym na bilym) "vubec se o dimenzovani nemusite starat."
hardware a verze databaze je casto temer obchodni tajemstvi. A uz jsem mluvil se supportem, kterej byl zaskocenej, ze tabulka s adresama pobocek je vetsi nez 100 radku.

takze zakaznik nechce slyset " a potrebuje to vubec pouzivat, zpomalujete tam ostatni zakazniky" nebo "ale to budeme muset koupit novy diskovy pole"





mark42

  • ***
  • 132
    • Zobrazit profil
    • E-mail
Re:Co už je v MariaDB veliká tabulka?
« Odpověď #5 kdy: 13. 01. 2022, 10:27:32 »
@pruzkumbojem Nechapem Tvoj posledny prispevok vyssie okrem toho ze to asi ide v cloude. Asi by to chcelo naozaj par podrobnosti, takto to vyzera dost zmatene a nie je z toho jasne vo co go :)

1 mld riadkov je na MariaDB slusne cislo, vela vsak zalezi od:
- typu DB storage engine
- sirky tabulky (pocty stlpcov a ich datove typy)
- poctu a typu indexov (ako pisali vyssie, problem zistis az ked tabulku budes potrebovat upravit alebo restorovat)
- pomeru R/W
- pomeru"working set" vs "vsetky riadky" (ci sa pouzivaju hlavne casovo posledne data alebo je hlavny usecase agregacia alebo statistiky celej tabulky)
- kde to bezi (aj ak ide o cloud tak by malo byt mozne zistit, ake prostriedky to ma pridelene)

Bez tychto dat budu vo vlakne same hadanky a uvahy a nie odpoved, ktoru ocakavas.

oss

  • ***
  • 247
    • Zobrazit profil
    • E-mail
Re:Co už je v MariaDB veliká tabulka?
« Odpověď #6 kdy: 13. 01. 2022, 14:42:19 »
Okolo 10 000 zaznamov je pre MySQL velka tabulka.

Re:Co už je v MariaDB veliká tabulka?
« Odpověď #7 kdy: 13. 01. 2022, 17:01:45 »
Okolo 10 000 zaznamov je pre MySQL velka tabulka.

naštěstí tady je řeč o MariaDB.

oss

  • ***
  • 247
    • Zobrazit profil
    • E-mail
Re:Co už je v MariaDB veliká tabulka?
« Odpověď #8 kdy: 14. 01. 2022, 07:53:55 »
Ono sa lisia viac menej v nazve.

Re:Co už je v MariaDB veliká tabulka?
« Odpověď #9 kdy: 14. 01. 2022, 08:15:50 »
Okolo 10 000 zaznamov je pre MySQL velka tabulka.

Ten čas letí... kdysi dávno panovala představa taková, že MySQL sice neumí všechny možné vychytávky co se týče transakcí / triggerů / stored procedur, ale je pekelně rychlé a na jednoduchém datovém modelu škáluje kamsi za horizont. Desítky milionů záznamů nebyly problém... Proti tomu stál Postgres, který uměl důkladně všecky možné fičury, ale nebyl až tak rychlý. Pravda je, že to bylo v dobách, kdy kapacita disků byla o tři nuly kratší číslo, přitom random IOps per spindle vypadaly dost podobně.

Re:Co už je v MariaDB veliká tabulka?
« Odpověď #10 kdy: 14. 01. 2022, 09:00:52 »
Ono sa lisia viac menej v nazve.

kdy naposledy jsi ty databáze viděl? Po několika letech práce Oraclu na MySQL 8 bych mu neříkal, že se to pořád liší jen v názvu. Rozdílů je tam už více než dost, nemluvě o tom, že se nám rozrostl počet dostupný enginů.

Všiml jsis, že tady máme InnoDB, které umí indexy a nikoliv jen MyISAM?

Re:Co už je v MariaDB veliká tabulka?
« Odpověď #11 kdy: 14. 01. 2022, 13:01:00 »
Ono sa lisia viac menej v nazve.

kdy naposledy jsi ty databáze viděl? Po několika letech práce Oraclu na MySQL 8 bych mu neříkal, že se to pořád liší jen v názvu. Rozdílů je tam už více než dost, nemluvě o tom, že se nám rozrostl počet dostupný enginů.

Všiml jsis, že tady máme InnoDB, které umí indexy a nikoliv jen MyISAM?

To i MyISAM umí indexy :-)

Re:Co už je v MariaDB veliká tabulka?
« Odpověď #12 kdy: 14. 01. 2022, 13:29:29 »

To i MyISAM umí indexy :-)

Samozřejmě ;), měl jsem napsat "umí pořádně indexy", narážel jsem na vylomeniny se správným nastavením key_cache_block_size a key_cache_size podle velikotí .MYI souborů a běžné velikosti vrácených datasetů, ve výchozím nastavení hodnoty byly příliš malé a u velkých tabulek dělaly dost podstatné problémy, už je to ale hodně dávno. Jen jsem odhadoval podle čeho oss odvozuje, že MySQL nezvládá více než 10k řádků.

Re:Co už je v MariaDB veliká tabulka?
« Odpověď #13 kdy: 14. 01. 2022, 14:12:30 »

To i MyISAM umí indexy :-)

Samozřejmě ;), měl jsem napsat "umí pořádně indexy", narážel jsem na vylomeniny se správným nastavením key_cache_block_size a key_cache_size podle velikotí .MYI souborů a běžné velikosti vrácených datasetů, ve výchozím nastavení hodnoty byly příliš malé a u velkých tabulek dělaly dost podstatné problémy, už je to ale hodně dávno. Jen jsem odhadoval podle čeho oss odvozuje, že MySQL nezvládá více než 10k řádků.

To bych tipoval, že je ironie. Obecně se bere 10K řádků jako limit pro ještě funkční aplikaci nad špatně navrženou databází nebo pokud chybí indexy. Do 10K řádků jsou i ty fullscany stále ještě dostatečně rychlé. MySQL i MariaDB bezproblémově zvládnou desítky, možná stovky miliónů řádků. A to zvládnou všechny databáze. Co se liší je chování. Rychlost zápisů, rychlost čtení, zpracování jednoduchých SQL, zpracování komplexních SQL, provoz při 1 nebo 10 nebo 100 vkách uživatelů, atd atd.