Mysql
 sql >> база данни >  >> RDS >> Mysql

Как mysql може да вмъкне милиони записи по-бързо?

Най-вероятно е, защото вмъквате записи като този:

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");

Изпращане на нова заявка всеки път, когато трябва да INSERT нещо е лошо за производителността. Вместо това комбинирайте тези заявки в една заявка, като тази.

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

Можете също да прочетете повече за скоростта на вмъкване в MySQL Docs . Той ясно описва следното.

Разбира се, не комбинирайте ВСИЧКИ, ако сумата е ОГРОМНА. Да речем, че имате 1000 реда, които трябва да вмъкнете, след което не го правете един по един. Но вероятно не трябва еднакво да се опитвате да имате всичките 1000 реда в една заявка. Вместо това го разбийте на по-малки размери.

Ако все още е много бавен, това може да е просто защото сървърът ви е бавен.

Обърнете внимание, че разбира се не се нуждаете от всички тези интервали в комбинираната заявка, а просто за да получите по-добър преглед на отговора.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Правете изчисления в MySQL срещу PHP

  2. Безопасно ли е да се използва LIMIT без ORDER BY

  3. Урок за MySQL – Конфигуриране и управление на SSL на вашия MySQL сървър

  4. Как да добавя функция levenshtein в mysql?

  5. Проверка на стойност в масив в една SQL заявка с клауза WHERE