1) Всички промени, които правите, са видими в рамките на една и съща транзакция. Ако го направите
START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;
вашият изход ще включва „Здравей“. Но ако стартирате втора връзка с база данни, новият ред няма да се показва, докато не извършите транзакцията си от първата връзка. Опитайте да играете с това, като използвате две връзки към базата данни, като използвате командния ред.
Не виждате ефекта във вашия уебсайт, защото не можете да имате една и съща транзакция в рамките на две връзки с база данни (нова връзка с db ще бъде направена в началото на вашата заявка).
2) Всички транзакции, които не са ангажирани, ще бъдат върнати, когато връзката с базата данни бъде затворена. Така че, ако това са единствените ви две заявки, няма разлика. Има обаче разлика между
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) Да, всички те са еднакви.