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

Je InnoDB (MySQL 5.5.8) správnou volbou pro řádky s mnoha miliardami?

Jednoduchá odpověď na vaši otázku by byla ano InnoDB by byla perfektní volbou pro datovou sadu s mnoha miliardami řádků.

Existuje celá řada optimalizací, která je možná.

Nejzjevnější optimalizací by bylo nastavení velkého fondu vyrovnávacích pamětí, protože zásobník vyrovnávacích pamětí je nejdůležitější věcí, pokud jde o InnoDB, protože InnoDB ukládá data i index do zásobníku vyrovnávacích pamětí. Pokud máte vyhrazený server MySQL pouze s tabulkami InnoDB, měli byste nastavit až 80 % dostupné paměti RAM, které má InnoDB využívat.

Další nejdůležitější optimalizací je mít v tabulce správné indexy (s ohledem na vzor přístupu k datům/aktualizaci), primární i sekundární. (Pamatujte, že primární indexy jsou automaticky připojeny k sekundárním indexům).

S InnoDB jsou některé další vychytávky, jako je ochrana před poškozením dat, automatické obnovení atd.

Pokud jde o zvýšení výkonu zápisu, měli byste nastavit soubory protokolu transakcí tak, aby byly celkově až 4G.

Další věcí, kterou můžete udělat, je rozdělení tabulky.

Vyššího výkonu můžete dosáhnout nastavením formátu bin-log-format na "řádek" a nastavením auto_inc_lock_mode na 2 (to zajistí, že innodb nebude mít zámky na úrovni tabulky při vkládání do sloupců s automatickým přírůstkem).

Pokud potřebujete nějakou konkrétní radu, můžete mě kontaktovat, rád vám pomůžu.



  1. Podivná výjimka SQL:Sloupec nebyl nalezen

  2. MySQL Nelegální mix porovnávání

  3. Omezení křížové tabulky MS SQL Serveru

  4. MySQL ekvivalent Oracle SEQUENCE.NEXTVAL