Это правильно?
Да.
Небольшой придира: я бы использовал START TRANSACTION
вместо begin
, это то же самое, но более очевидное.
Я также читал, что некоторые API используют свои собственные транзакции, и мне было интересно, знает ли кто-нибудь, выполняет ли это PDO.Другими словами, должен ли я вообще беспокоиться об этом или позволить PDO обрабатывать транзакции?
PDO волшебным образом не знает, когда ваши транзакции начинаются и заканчиваются, поэтому вам все равно придется начинать и заканчивать транзакции, если auto-commit = 1, и вы хотите включить более 1 оператора в транзакцию.
Вы не должны беспокоиться, что вы делаете выше, это нормально.
В случае, если PDO обрабатывает транзакции, я все испорчу с вышеуказанными запросами?
Нет.
Так что, если я сгруппирую кучу INSERT и сделаю: {см. Код выше} Это должно быть более эффективно.
Не очень, если вы можете объединить все свои вставки в одном утверждении , что будет более эффективным.
И если вы можете заменить вставку на load data infile
это было бы еще эффективнее.
Пример:
INSERT INTO table1 (field1, field2) VALUES (1,1),(2,5),(5,6);
-- Much more efficient than 3 separate inserts
-- (and you don't need to start and end the transaction :-)