MySQL → Пакетное обновление или batch update
Иногда возникает потребность обновить много записей в базе данных, например 3000, 7000 или 25000 штук. Видел даже веб-формы с таким количеством полей, хоть это и полное безумие :) Можно, конечно, обновить эти записи поштучно, но бомбардировать сервер базы данных запросами - плохая идея. Желательно сделать это за раз. И сделать это возможно следующим образом:
INSERT INTO table (`id`, `x`, `y`) VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9) ON DUPLICATE KEY UPDATE `x` = VALUES(`x`), `y` = VALUES(`y`);
Комментарии