Sobes.tech
Junior — Middle

Můžete vysvětlit, co je to fantomové čtení v kontextu správy transakcí?

sobes.tech AI

Odpověď od AI

Fantomové čtení je jev v řízení transakcí, kdy opakovaný dotaz do databáze v rámci jedné transakce vrací odlišné sady řádků kvůli změnám provedeným jinými transakcemi.

Například transakce T1 čte sadu řádků splňujících podmínku (například všechny dnešní objednávky). Mezi dvěma čteními přidá jiný proces (transakce T2) nové řádky, které také splňují podmínku. Při opětovném čtení se objeví "fantomové" řádky — nové záznamy, které při prvním čtení nebyly.

K tomu dochází kvůli absenci zámků na úrovni rozsahů nebo kvůli nízké úrovni izolace transakcí (například READ COMMITTED). Aby se předešlo fantomovým čtením, používají se přísnější úrovně izolace, například SERIALIZABLE, nebo mechanismy zámků rozsahů.