Я читаю о транзакциях в MySQL и не уверен, правильно ли я понял что-то конкретное, и я хочу быть уверенным, что правильно понял, так что здесь. Я знаю, что должна делать транзакция, я просто не уверен, понял ли я семантику или нет.
Итак, мой вопрос: что-то не так, (и, если это так, что не так) со следующим:
По умолчанию режим autocommit включен в MySQL.
Теперь SET autocommit=0; начнет транзакцию, SET autocommit=1; будет неявно совершать. Возможно COMMIT;, а также ROLLBACK;, в обоих случаях autocommit по-прежнему устанавливается на 0 после (и новая транзакция неявно запущена).
START TRANSACTION; будет в основном SET autocommit=0; до тех пор, пока не произойдет COMMIT; или ROLLBACK;.
Другими словами, START TRANSACTION; и SET autocommit=0; эквивалентны, за исключением того факта, что START TRANSACTION; выполняет эквивалент неявного добавления a SET autocommit=0; после COMMIT; или ROLLBACK;
Если это так, я не понимаю http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html#isolevel_serializable - вид наличия уровня изоляции означает, что есть транзакция, означает, что autocommit должен быть выключен в любом случае?
И если есть другая разница (отличная от описанной выше) между началом транзакции и установкой autocommit, что это такое?