Вставка нескольких строк, простой цикл или хранимая процедура MySQL?
У меня есть пользователь, который может нажать кнопку, которая генерирует список данных, и каждый элемент в этом списке должен иметь соответствующую строку данных, вставленную в таблицу базы данных.
Когда они нажмут указанную кнопку, я вставлю около 4-8 строк данных, примерно с 5 полями, так что запрос совсем не большой. Итак, говоря с точки зрения производительности, было бы лучше просто создать цикл for, который выполняет 4 отдельных INSERT
запросы, или я могу что-то сделать с stored procedure
? Я не уверен, стоит ли создавать собственно хранимую процедуру для чего-то такого маленького.
Я не могу использовать один INSERT
запрос для вставки нескольких строк одновременно, потому что это потребовало бы много дополнительного кода для построения строки запроса на моем node.js
сервер.
1 ответ
Если вы вставляете менее 10 строк, я не вижу проблем с запуском insert
многократно. Вы несете много накладных расходов, начиная и совершая транзакции и передавая данные в базу данных. Но базы данных могут обрабатывать сотни вставок в секунду, поэтому для небольшой пользовательской базы это, вероятно, достаточно хорошо.
Однако я не понимаю, почему insert . . . values
было бы сложно
insert into t(a, b, c)
values ('a1', 'b1', 'c1'),
('a2', 'b2', 'c2'),
. . .;
Это не кажется намного сложнее, чем перебирать данные в первую очередь.