1) Všechny provedené změny jsou viditelné v rámci stejné transakce. Pokud ano
START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;
váš výstup bude obsahovat 'Ahoj'. Pokud však zahájíte druhé připojení k databázi, nový řádek se nezobrazí, dokud transakci nepotvrdíte z prvního připojení. Zkuste si s tím pohrát pomocí dvou databázových připojení pomocí příkazového řádku.
Na svém webu nevidíte efekt, protože nemůžete mít stejnou transakci v rámci dvou připojení k databázi (nové připojení db bude vytvořeno na začátku vašeho požadavku).
2) Všechny transakce, které nejsou potvrzeny, budou po uzavření spojení s databází vráceny zpět. Pokud jsou to tedy vaše jediné dva dotazy, není v tom žádný rozdíl. Existuje však rozdíl mezi
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) Ano, všechny jsou stejné.