Bloqueo de mesa

1. Características:

El motor de almacenamiento MyISAM está sesgado, la sobrecarga es pequeña, se agrega el bloque de bloqueo, no hay punto muerto, la fuerza de bloqueo es grande, la probabilidad de conflictos de bloqueo es alta y la concurrencia es baja.

2. Compruebe si desea bloquear :, SHOW OPEN TABLEScomando de bloqueo :, lock table 表名 read, 表名 write,......liberar tablaunlock tables

(1) Agregar bloqueo de lectura (lectura parcial)

  • Hilo 1, agregue bloqueo de lectura de tabla, el hilo 1 es legible, no se puede escribir; no puede leer otras tablas.
  • Subproceso 2, puede leer la tabla, también puede leer otras tablas, pero modifique el subproceso 1 y agregue la tabla de bloqueo se bloqueará.
    (2) Agregar bloqueo de escritura (escritura parcial)
  • Subproceso 1, agregue un bloqueo de escritura, el subproceso 1 puede leer la tabla que ha bloqueado, puede modificar la tabla que ha bloqueado y no puede leer otras tablas
  • El subproceso 2 puede verificar otras tablas, la tabla bloqueada al leer el subproceso 1 se bloqueará hasta que se libere el bloqueo de la tabla.
3. Resumen

image.png
En resumen, los bloqueos de lectura bloquearán las escrituras, pero no bloquearán las lecturas, y los bloqueos de escritura bloquearán tanto las lecturas como las escrituras

4. Análisis del bloqueo de la mesa.

(1) SHOW OPEN TABLESPuede verificar qué tablas están bloqueadas
(2) Puede analizar los bloqueos de tablas en el sistema verificando table_locks_watiedy table_locks_immedinatevariables de estado:show status like 'table%';

  • table_locks_immedinateRepresenta el número de bloqueos a nivel de tabla, el número de consultas que pueden obtener inmediatamente un bloqueo, más 1 por cada valor de bloqueo inmediato
  • table_locks_watiedEl número de esperas para la contención de bloqueo a nivel de tabla (la cantidad de veces que el bloqueo no se puede obtener de inmediato, más 1 para cada valor de bloqueo). Un valor alto indica una contención de bloqueo grave a nivel de tabla.
    Además, la programación de lectura y escritura del motor MyISAM es una prioridad de escritura, que tampoco es adecuada para que MyISAM se escriba como el motor de la tabla principal. Porque después de que se escribe el bloqueo, otros subprocesos no pueden realizar ninguna operación, y una gran cantidad de actualizaciones dificultará que la consulta obtenga el bloqueo, lo que provocará un bloqueo permanente.

Inserte la descripción de la imagen aquí

41 artículos originales publicados · Me gustaron 14 · Visitantes más de 10,000

Supongo que te gusta

Origin blog.csdn.net/Yunwei_Zheng/article/details/104017266
Recomendado
Clasificación