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

Jak může mysql vkládat miliony záznamů rychleji?

Nejpravděpodobněji je to proto, že vkládáte záznamy takto:

INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");
INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2");

Odeslání nového dotazu pokaždé, když potřebujete INSERT něco je špatné pro výkon. Místo toho tyto dotazy zkombinujte do jednoho dotazu, jako je tento.

INSERT INTO `table1` (`field1`, `field2`) VALUES ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2"),
                                                 ("data1", "data2");

Další informace o rychlosti vkládání si můžete přečíst také v Dokumentech MySQL . Jasně popisuje následující.

Samozřejmě nekombinujte VŠECHNY, pokud je množství OBROVSKÉ. Řekněme, že musíte vložit 1000 řádků, pak to nedělejte jeden po druhém. Pravděpodobně byste se však neměli snažit mít všech 1000 řádků v jednom dotazu. Místo toho jej rozdělte na menší velikosti.

Pokud je stále opravdu pomalý, může to být způsobeno tím, že je pomalý váš server.

Upozorňujeme, že v kombinovaném dotazu samozřejmě nepotřebujete všechny tyto mezery, pouze proto, abyste získali lepší přehled o odpovědi.




  1. Zápis souboru csv do databáze SQL Server pomocí pythonu

  2. Jak vytvořit dokument Excel z programu Java pomocí Apache POI

  3. 11 způsobů, jak najít duplicitní řádky při ignorování primárního klíče v SQLite

  4. Sledování upozornění na Facebooku (DB Design)