Livelli di isolamento
Controllare cosa vede una transazione
Sezione intitolata “Controllare cosa vede una transazione”I livelli di isolamento stabiliscono quanto una transazione può vedere del lavoro delle altre transazioni in corso.
Quando più transazioni leggono o modificano gli stessi dati, il database stabilisce quali modifiche può vedere ciascuna.
Livelli noti:
READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE
La regola intuitiva
Sezione intitolata “La regola intuitiva”Più isolamento significa di solito maggiore prevedibilità, ma anche meno concorrenza.
È sempre un equilibrio tra protezione e prestazioni.
Come pensarli senza perdersi
Sezione intitolata “Come pensarli senza perdersi”Non è indispensabile memorizzare subito i dettagli fini di ogni livello. All’inizio ti basta capire questo:
- i livelli bassi lasciano più libertà
- i livelli alti proteggono di più dai comportamenti strani
Una scala mentale utile
Sezione intitolata “Una scala mentale utile”READ COMMITTED è una scelta comune: una transazione vede solo dati già confermati da altre transazioni.
REPEATABLE READ protegge di più la lettura: se rileggi gli stessi dati nella stessa transazione, ti aspetti più stabilità.
Il più rigoroso
Sezione intitolata “Il più rigoroso”SERIALIZABLE è il livello più severo tra quelli classici. Fa comportare le transazioni come se passassero una alla volta.
È molto protettivo, ma può essere più costoso in termini di concorrenza.