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

MySql:MyISAM vs. Inno DB!

Hlavním rozdílem je, že InnoDB podporuje transakce, zatímco MyISAM ne.

Existuje mnoho dalších rozdílů, ale ty běžné, kterých jsem si vědom, jsou:

  • MyISAM byl obvykle považován za rychlejší při vyhledávání, ale nedávná vylepšení InnoDB tento rozdíl odstraňují a zlepšují výkon při vysokém souběžném pracovním zatížení
  • InnoDB podporuje transakce, zatímco MyISAM ne
  • InnoDB podporuje referenční integritu, zatímco MyISAM ne
  • InnoDB zachází s indexy trochu jinak, primární klíč ukládá jako součást každého indexu (indexy tak zabírají více místa na disku, ale také zvyšuje pravděpodobnost krycího indexu)
  • MyISAM zamyká na úrovni tabulky, zatímco InnoDB umí zamykat na úrovni řádků
  • V konfiguračních souborech MySQL se používají různá nastavení paměti/vyrovnávací paměti/indexu
  • O InnoDB se obvykle říká, že má lepší zotavení z havárie
  • Jak je uvedeno v jiné odpovědi, data se na disku ukládají jinak. Věřím, že InnoDB je v této oblasti konfigurovatelný a může mít jeden soubor na tabulku atd. v případě potřeby

Jsem si jistý, že vyhledávání Google nebo web MySQL podrobněji odhalí četné další rozdíly.



  1. Jak pretify výstup pocházející z dotazu SELECT v příkazovém řádku?

  2. Jak vytvořit fiktivní proměnné sloupce pro tisíce kategorií v Google BigQuery?

  3. Oracle pivot s poddotazem

  4. Zlepšete výkon dotazů SQL Server na velkých tabulkách