La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB

Presentaciones similares


Presentación del tema: "UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB"— Transcripción de la presentación:

1 UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB
Suponiendo que se esta ejecutando en el nivel de aislamiento, cuando se realiza una lectura consiste- esto es, una sentencia SELECT ordinaria- INNODB le otorga a la transacción un punto en el tiempo (timepoint) del momento en que se realizo la consulta. si otra transacción elimina una fila y confirma la acción en un momento posterior a dicho punto, no se vera la fila como borrada. Las inserciones y actualizaciones se tratan del mismo modo. Se puede obtener un timepoint mas reciente confirmado la transacción actual y emitiendo un nuevo SELECT.

2 Esto se llama control de concurrencia multiversion:
Usuario A Usuario B Time SET AUTOMMIT=0; SET AUTOCOMMIT=0; SELECT * FROM T; Empty set INSERT INTO t VALUES ( 1,2 ) ; SELECT* FROM t; Empty set COMMIT; SELECT * FROM t; | 1 | 2 | 1 row in set

3 ESTABLECIMIENTO DE BLOQUEOS CON DIFERENTES SENTENCIAS SQL en InnoDB
SELECT ... FROM ... esta es una lectura consistente, leyendo una copia de la base de datos y no aplicando bloqueos, a menos que el nivel de aislamiento sea SERIALIZABLE SELECT ... FROM ... LOCK IN SHARE MODE aplica bloqueo compartido en todos los registros índice encontrados. SELECT ... FROM ... FOR UPDATE aplica bloqueo exclusivo en todos los registros índice encontrados. INSERT INTO ... VALUES (...) aplica un bloqueo exclusivo en la tupla insertada. INSERT INTO T SELECT ... FROM S WHERE ... aplica un bloqueo exclusivo (non-next-key) en cada tupla insertada en T. Normalmente hace una búsqueda en S como lectura consistente.

4 CREATE TABLE ... SELECT ... realiza el select como una lectura consistente o con bloqueos compartidos. REPLACE es realizado como un insert si es que no hay una colisión en una llave única. De otra manera un bloqueo exclusivo es aplicado en la tupla que será actualizada. UPDATE ... SET ... WHERE ... aplica un bloqueo exclusivo en cada registro encontrado. DELETE FROM ... WHERE ... FOREIGN KEY constraints si una condición de llave foránea es definida en una tabla, cualquier insert, update o delete que requiera revisar la condición aplica un bloqueo compartido en las tuplas. LOCK TABLES ... aplica el bloqueo a una tabla.


Descargar ppt "UN EJEMPLO DE LECTURA CONSISTENTE EN INNODB"

Presentaciones similares


Anuncios Google