sql >> Databáze >  >> RDS >> Mysql

Jak velká je příliš velká pro tabulku MySQL?

Na otázku „Jak velká je příliš velká“ neexistuje žádné skvělé obecné řešení – tyto obavy často závisí na tom, co děláte se svými daty a jaké jsou vaše úvahy o výkonu.

Velikost tabulky má několik zásadních omezení. Nemůžete mít více než 1000 sloupců. Každý z vašich záznamů nemůže být větší než 8 000. Tyto limity se mění v závislosti na databázovém stroji. (Tady jsou pro InnoDB.)

Zdá se, že jste sloučili několik různých datových sad do jedné tabulky. Pravděpodobně máte některá pole, která vám řeknou, jaké datové sady se tento záznam týká, spolu s některými datovými poli a některými informacemi o časovém razítku. To není příliš široký záznam (pokud nezaznamenáváte, řekněme, všechny vstupní parametry každého požadavku.) Váš hlavní problém bude s selektivitou . Indexování této tabulky smysluplným způsobem bude výzvou. Pokud mohou být vaše společná pole dostatečně selektivní, abyste je mohli použít k získání požadovaných záznamů bez nahlédnutí do tabulky, bude to obrovské plus. (Viz skenování tabulky)

Pro tolik záznamů za den (v podstatě dva za sekundu po celý den a předpokládám, že máte období špičkového zatížení, kdy je mnohem vyšší), se také budete chtít ujistit, že se konkrétně podíváte na optimalizace na zlepšení rychlosti vkládání . Obecně platí, že více indexů =pomalejší vkládání. Pokud můžete, zvažte archivaci zastaralých záznamů zcela do jiné tabulky. Na předchozích pracovištích jsme používali archivní strategii Poslední měsíc, Před třemi měsíci, Před šesti měsíci, každou v samostatných tabulkách. Dalším nápadem je odstranit starší záznamy. Mnoho prostředí jednoduše nepotřebuje informace po určitém datu. Zavěšení na protokolování záznamů z doby před třemi měsíci je často příliš drahé.

V neposlední řadě nezanedbávejte ani fyzické úložiště vašeho stolu. Čím tenčí jsou vaše záznamy, tím méně fyzického IO potřebuje ke čtení (nebo dokonce k vložení) záznamu. Své indexy můžete uložit na samostatný fyzický pevný disk. Pokud je ve vašich záznamech mnoho nadbytečných dat, které komprimovanou tabulku ukládají, může ve skutečnosti dojít ke zvýšení rychlosti. Pokud máte trochu peněz na vypálení, zvažte hodnotu dobrého pole RAID pro prokládání dat.

Takže, abych odpověděl na vaši základní otázku:je to hodně nahrávek, ale s pečlivým pohledem na ladění to nebude problém.



  1. COALESCE v laravel

  2. vyberte * ze dvou tabulek s různým počtem sloupců

  3. MySQL INSERT ....ON DUPLICATE UPDATE - Přidá jedničku k automatickému přírůstku

  4. Ukládání více dat zaškrtávacích políček v databázi MySQL s PHP