Resumen de MySQL de bloqueo (bloqueos de registro, bloqueos de tabla, el bloqueo optimista, pesimista de bloqueo)

Una breve bloqueo

A partir de la granularidad de bloqueo se pueden dividir en dos categorías

Bloqueo de línea : gran sobrecarga, bloqueo lenta, habrá un punto muerto, la fuerza de cierre pequeña, baja probabilidad de conflictos de bloqueo, alta concurrencia leer.
bloqueo de tabla : pequeña sobrecarga, bloqueo rápido, no será un punto muerto, gran fuerza de bloqueo, alta probabilidad de conflictos de bloqueo, el bajo grado de concurrencia.

bloqueos a nivel de fila
de bloqueo a nivel de fila es una cerradura de bloqueo de MySQL granularidad más fina, la cerradura sólo para la representación de las líneas de la operación actual. conflicto bloqueo de filas puede reducir en gran medida las operaciones de bases de datos. El tamaño mínimo de la cerradura, pero la cerradura de la más grande de arriba. el bloqueo de filas se divide en los bloqueos compartidos y exclusivos.
Características
gasto grande, bloqueado lenta, habrá un punto muerto; el bloqueo del tamaño más pequeño, menor probabilidad de conflictos de bloqueo, tiene el más alto grado de concurrencia.
Tabla
de nivel de tabla granularidad de bloqueo es uno de los más grandes en el bloqueo de MySQL bloqueado, representa todo el bloqueo de tabla en la operación actual, es simple, bajo consumo de recursos, con el apoyo de la mayor parte del motor de MySQL. MYISAM y INNODB más comúnmente utilizados de bloqueo de apoyo a nivel de tabla. Tabla de nivel de tabla de bloqueo en un bloqueo compartido lectura (bloqueo compartido) y la tabla de bloqueo de escritura exclusivo (bloqueo exclusivo).
Cuenta con
una pequeña sobrecarga, bloqueo rápido; no un punto muerto; bloquear gran tamaño, la probabilidad de conflictos de bloqueo emisión del grado máximo y mínimo de la concurrencia.

La fila de bloqueo y estancamiento:

Cuando las dos operaciones simultáneamente, un bloqueados índice de clave principal, esperando a que los demás índices. Otra encerrados índice de clave no primaria, esperando a que el índice de clave principal. Tal produce un interbloqueo.

los bloqueos compartidos y exclusivos:

bloqueos de compartimiento (Compartir) de bloqueo
bloqueos compartidos, también conocido como el bloqueo y el bloqueo del leer creados. Otros usuarios pueden leer simultáneamente los datos, pero no hay datos de la transacción no puede ser modificado (para obtener un bloqueo exclusivo en los datos), hasta que todos los bloqueos compartidos han sido puestos en libertad.
Si los datos de la transacción T a A, más bloqueo compartido, otras transacciones sólo puede compartir más un bloqueo no puede añadir bloqueo exclusivo. Concedido una transacción bloqueo compartido sólo pueden leer los datos, los datos no se puede modificar.

用法 SELECT ... LOCK IN modo compartido;

Aumentar después de la consulta BLOQUEO EN MODO DE ACCIÓN, MySQL Query resultará en cada fila compartida cerraduras, cuando no hay otra línea de hilo de conjunto de resultados de consulta cuando se utiliza el bloqueo exclusivo, bloqueo compartido puede aplicarse con éxito, de lo contrario será bloqueado . Otros temas también se puede leer usando una tabla de bloqueo compartido, y leer estos hilos es la misma versión de los datos.

Bloqueo exclusivo (bloqueo exclusivo)
bloqueo exclusivo, también conocido como bloqueo de escritura, si los datos de la transacción T a A, más bloqueo exclusivo después, otras transacciones no puede ser cualquiera de una más cualquier tipo de bloqueo. Ambos aprobaron la transacción de datos de fila leen sus cabellos, pero también modifican los datos.
Use SELECT ... FOR UPDATE;

Aumentar después de la consulta FOR UPDATE, MySQL los resultados de consultas en cada fila, más bloqueo exclusivo, cuando no hay una línea de otros hilos del conjunto de resultados de consulta se utiliza exclusivamente cuando el bloqueo se puede aplicar con éxito para un bloqueo exclusivo, de lo contrario será bloqueado.

De acuerdo con el uso, se puede dividir en dos categorías:

El bloqueo optimista : el bloqueo optimista es un tipo de pensamiento, como su nombre implica: que la situación no va a actualizar los datos bloqueado, si encontramos algo mal, no se actualiza (rollback). A menudo añadir un campo de versión de la base de datos de lograr.

Bloqueo pesimista : el uso bloqueo pesimista es el bloqueo de registro en la base de datos que se produce el conflicto de concurrencia base de datos, los datos pone directamente hasta las cerraduras, otras transacciones no pueden ser modificadas hasta la presentación de la transacción actual

Publicados 114 artículos originales · elogios ganado 16 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44026997/article/details/105093178
Recomendado
Clasificación