1) Semua perubahan yang Anda buat terlihat dalam transaksi yang sama. Jika Anda melakukannya
START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;
output Anda akan menyertakan 'Hai di sana'. Tetapi jika Anda memulai koneksi database kedua, baris baru tidak akan ditampilkan sampai Anda melakukan transaksi dari dalam koneksi pertama. Coba mainkan ini menggunakan dua koneksi database menggunakan baris perintah.
Anda tidak melihat efeknya di situs web Anda karena Anda tidak dapat memiliki transaksi yang sama dalam dua koneksi database (koneksi db baru akan dibuat di awal permintaan Anda).
2) Semua transaksi yang tidak dilakukan akan dibatalkan ketika koneksi dengan database ditutup. Jadi, jika ini hanya dua pertanyaan Anda, tidak ada perbedaan. Namun ada perbedaan antara
START TRANSACTION;
INSERT INTO MyTable VALUES ('This one would be discarded on rollback');
ROLLBACK;
INSERT INTO MyTable VALUES ('This one will be permanent because not within transaction');
3) Ya, semuanya sama.