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

Jak co nejrychleji vložit velké množství záznamů do databáze MySql

Existuje řada způsobů, jak optimalizovat hromadné vložky. Některé jsou:

  • LOAD DATA INFILE . Existuje wrapper API pro . NET . Toto je nejrychlejší způsob, ale má určitá omezení a sémantické rozdíly od jednoduchých vložek.

  • Víceřádkový INSERT prohlášení:

    INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...

    Neměli byste vkládat 20 000 000 řádků najednou, ale můžete zkusit 1 000-10 000 pro velmi velké zrychlení. Jedná se o jednoduchý a velmi bezproblémový způsob zvýšení rychlosti. Často je možný faktor 10 a někdy i více.

  • Uzamčení stolu (LOCK TABLES ).

  • Dočasné zakázání indexů.

  • Ladění možností MySQL.

  • INSERT DELAYED (zde to s největší pravděpodobností není tak užitečné).

Dokumentace vám poskytuje propracovanější podrobnosti na možnostech. Některé možnosti závisí na typu tabulky (InnoDB vs. MyISAM ).

Obecný návrh:Vždy určete sloupce, které vkládáte před VALUES . Díky tomu je kód lépe udržovatelný.



  1. Jak namapovat sloupec MySQL JSON na vlastnost entity Java pomocí JPA a Hibernate

  2. Generování diagramu vztahu tabulky z existujícího schématu (SQL Server)

  3. smazat pomocí where a nebo

  4. Zálohování a obnova MySQL z příkazového řádku