Può spiegare cos'è una lettura fantasma nel contesto della gestione delle transazioni?
sobes.tech AI
Risposta dell'AI
La lettura fantasma è un fenomeno nella gestione delle transazioni, in cui in una stessa transazione, una query ripetuta al database restituisce insiemi di righe diversi a causa di modifiche apportate da altre transazioni.
Ad esempio, la transazione T1 legge un insieme di righe che soddisfano una condizione (ad esempio, tutti gli ordini di oggi). Tra due letture, un altro processo (transazione T2) aggiunge nuove righe che soddisfano anch'esse la condizione. Alla seconda lettura, compaiono righe "fantasma" — nuovi record che non erano presenti alla prima lettura.
Questo accade a causa dell'assenza di blocchi a livello di intervallo o a causa di un basso livello di isolamento delle transazioni (ad esempio, READ COMMITTED). Per evitare le letture fantasma, si utilizzano livelli di isolamento più rigorosi, come SERIALIZABLE, o meccanismi di blocco degli intervalli.