Differenza tra SET autocommit = 1 e START TRANSACTION in mysql (Ho perso qualcosa?)

Sto leggendo le transazioni su MySQL e non sono sicuro di aver compreso qualcosa di specifico correttamente, e voglio essere sicuro di averlo capito correttamente, quindi ecco qui. So cosa dovrebbe fare una transazione, non sono sicuro se ho capito la semantica della dichiarazione o no.

Quindi, la mia domanda è, è qualcosa di sbagliato, (e, se questo è il caso, cosa c’è di sbagliato) con il seguente:

Per impostazione predefinita, la modalità di autocommit è abilitata in MySQL.

Ora, SET autocommit=0; inizierà una transazione, SET autocommit=1; implicitamente impegnerà. È ansible COMMIT; così come ROLLBACK; in entrambi i casi l’autocommit è ancora impostato su 0 successivamente (e una nuova transazione viene avviata implicitamente).

START TRANSACTION; basterà SET autocommit=0; fino a un COMMIT; o ROLLBACK; ha luogo.

In altre parole, START TRANSACTION; e SET autocommit=0; sono equivalenti, ad eccezione del fatto che START TRANSACTION; fa l’equivalente di aggiungere implicitamente un SET autocommit=0; dopo COMMIT; o ROLLBACK;

Se questo è il caso, non capisco http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html#isolevel_serializable – visto che avere un livello di isolamento implica che c’è una transazione, il che significa che l’autocommit dovrebbe essere spento comunque?

E se c’è un’altra differenza (diversa da quella descritta sopra) tra iniziare una transazione e impostare l’autocommit, che cos’è?