На самом деле, это имеет значение.
Когда у вас есть отдельные INSERT
s, вы должны позаботиться о том, чтобы сделать это внутри транзакции, чтобы у вас всегда было согласованное состояние. Но, поскольку они разделены, объем памяти, необходимый серверу для выполнения, меньше, потому что каждый INSERT
имеет свой собственный набор результатов - после завершения запроса сервер может выполнить другой запрос и т. Д.
Когда у вас есть все внутри одного большого запроса, к которому присоединяется UNION ALL
, серверу потребуется больше временных таблиц и больше памяти для завершения. Но, таким образом, у вас есть что-то типа «объемной» вставки, что может привести к более быстрой вставке.
Лично я бы пошел с отдельными вставками внутри транзакции. Иногда простое выполнение чего-то более выгодного с точки зрения удобства сопровождения и отладки, чем незначительный выигрыш в производительности (если есть, зависит от количества вставляемых строк)