PHP mysqli :: autocommit VS "START TRANSACTION"

В нашем объекте слоя базы данных мы всегда управляли транзакциями с операциями SQL «START TRANSACTION», «ROLLBACK» и «COMMIT» SQL, выполняемыми с помощью mysqli :: query.

Проведя некоторое исследование сегодня, я обнаружил это упоминание в Руководстве MySQL относительно использования вызовов уровня API для управления транзакцией VS с использованием прямого SQL:

Важный

Многие API-интерфейсы, используемые для написания клиентских приложений MySQL (например, JDBC), предоставляют свои собственные методы для запуска транзакций, которые могут (и иногда должны) использоваться вместо отправки инструкции START TRANSACTION от клиента. Для получения дополнительной информации см. Главу 20, «Коннекторы» и «API» или документацию для вашего API.

И, присмотревшись к mysqli, нашли методы mysqli :: autocommit, mysqli :: rollback и mysqli :: commit для управления транзакцией ( http://us.php.net/manual/en/class.mysqli.php ) ,

Мой вопрос: лучше ли использовать эти эквиваленты mysqli и почему? Я нигде не могу найти упоминания о том, что если или почему эти функции работают лучше, чем их прямые SQL-копии.

Возможно, могут быть причины, по которым оболочка доступа к данным должна знать, когда была запущена / завершена транзакция. Например, в верхней части моей головы схема объединения пулов должна знать, когда ранее использовавшееся соединение было завершено в середине транзакции, и не возвращать его в пул соединений для повторного использования в этом случае.

Я не знаю о каких-либо проблемах в mysqli , которые потребуют от вас использовать собственный метод, а не версию SQL, но это возможно в общем случае … вот почему это только «иногда должно». В любом случае, PHP-метод легче читать, чем версия SQL-строки, поэтому я бы сказал, что так или иначе.