1) Wszystkie wprowadzone przez Ciebie zmiany są widoczne w ramach tej samej transakcji. Jeśli tak
START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;
Twój wynik będzie zawierał „Cześć”. Ale jeśli uruchomisz drugie połączenie z bazą danych, nowy wiersz nie zostanie wyświetlony, dopóki nie zatwierdzisz transakcji z pierwszego połączenia. Spróbuj pobawić się tym, używając dwóch połączeń z bazą danych za pomocą wiersza poleceń.
Nie widzisz efektu w swojej witrynie, ponieważ nie możesz mieć tej samej transakcji w ramach dwóch połączeń z bazą danych (nowe połączenie z bazą danych zostanie nawiązane na początku żądania).
2) Wszystkie transakcje, które nie zostały zatwierdzone, zostaną wycofane po zamknięciu połączenia z bazą danych. Więc jeśli to są twoje jedyne dwa zapytania, nie ma różnicy. Jest jednak różnica między
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) Tak, wszystkie są takie same.