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

Rozdíl v požadovaném čase pro vložení záznamů InnoDB/MyISAM

Není jasné, jaká nastavení trvanlivosti jste povolili v MyISAM nebo Innodb, ani zda používáte jednořadé vložky nebo v obou případech dávkové vložky.

Pokud používáte jednořádkové vložky, nepoužíváte transakce a máte povolenou trvanlivost (výchozí nastavení v InnoDB), pak pravděpodobně uvidíte, že výkon InnoDB je vážně omezený požadavkem uložit každou transakci do trvalého úložiště ( tj. disk) po vložení každého řádku.

MyISAM žádný takový problém nemá, protože stejně není odolný, to znamená, že pokud stroj havaruje, je víceméně zaručeno, že ztratíte některá nedávno zapsaná data, o kterých databáze dříve tvrdila, že byla úspěšně zapsána (ne-li celá tabulka!).

Pokud chcete slušný výkon vkládání, použijte dávkové vkládání a/nebo transakce, jinak jen měříte rychlost zápisu následovaného fsync(), která (na řadiči RAID bez baterie na rotačním magnetickém médiu) je pouze rychlost otáčení vašeho disku.

Takže důvod, proč je innodb tak konzistentní, je ten, že měříte rychlost otáčení vašeho disku.

Když už bylo řečeno, že pokud máte vytížený server, rozhodně, absolutně, chcete použít řadič RAID zálohovaný baterií, pak můžete dosáhnout slušného výkonu potvrzování transakcí A řádné životnosti (Za předpokladu, že napájení nevypadne déle, než vydrží baterie, a server nevybuchne atd.).



  1. Jak spustit uloženou proceduru z Laravelu

  2. Jak YEAR() funguje v MariaDB

  3. Jak Access komunikuje se zdroji dat ODBC? Část 5

  4. Sekce konfiguračního souboru Mysql