cambiar búfer (búfer de escritura)

1.1 ¿Qué es el búfer de cambio?

  En MySQL, los datos se dividen en dos partes: memoria y disco; las páginas de datos activos y las páginas de índice se almacenan en caché en el grupo de búfer para reducir las lecturas del disco; el cambio de búfer es un medio para facilitar las escrituras en disco.

  El búfer de cambio es cuando la página de índice ordinaria no única no está en el grupo de búfer y la página está escrita, el cambio de registro se almacena en búfer primero y cuando se leen datos futuros, la operación en el búfer de cambio se fusiona con los datos originales Tecnología de página. Antes de MySQL5.5, se llamaba insertar búfer, que estaba optimizado solo para insertar; ahora también es efectivo para eliminar y actualizar, llamado cambiar búfer.

1.2 Principio del búfer de cambio

  Cuando es necesario actualizar una página de datos, se actualiza directamente si la página de datos está en la memoria. Si la página de datos no está en la memoria. Sin afectar la coherencia de los datos, InooDB almacenará en caché estas operaciones de actualización en el búfer de cambios, por lo que no es necesario leer la página de datos del disco. Cuando la siguiente consulta necesita acceder a la página de datos, la página de datos se lee en la memoria y luego se ejecutan las operaciones relacionadas con esta página en el búfer de cambios. De esta forma, se puede garantizar la exactitud de la lógica de los datos.
  Aunque el nombre es cambiar búfer, en realidad son datos persistentes. En otras palabras, el búfer de cambios se copia en la memoria y también se escribirá en el disco (ibdata).
  El proceso de combinar las operaciones en el búfer de cambios en la página de datos original para obtener el último resultado se llama combinación. Las siguientes situaciones desencadenarán la fusión:

  • Visite esta página de datos;
  • El hilo maestro de fondo se fusionará con regularidad;
  • Cuando el grupo de búferes de la base de datos no es suficiente;
  • Cuando la base de datos se cierra normalmente;
  • Cuando el registro de rehacer está lleno;

1.3 ¿Por qué el búfer de cambios es para páginas de índice ordinarias no únicas?

Índice único

  • Todas las operaciones de actualización deben determinar primero si esta operación viola la restricción de unicidad. Y esto debe determinarse leyendo la página de datos en la memoria.
  • Si todo se ha leído en la memoria, será más rápido actualizar la memoria directamente y no es necesario utilizar el búfer de cambio.

  Por lo tanto, el búfer de cambios no se puede utilizar para la actualización del índice único, de hecho, solo se puede utilizar el índice ordinario.

Índice normal

  • No es necesario juzgar la unicidad y utilizar el búfer de cambio para actualizar normalmente.

1.4 Variables relacionadas

mysql> show variables like '%change_buffer%';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| innodb_change_buffer_max_size | 25    |
| innodb_change_buffering       | all   |
+-------------------------------+-------+
2 rows in set (0.00 sec)
#innodb_change_buffering:默认是all支持所有DML操作
#innodb_change_buffer_max_size:默认是25,即缓冲池的1/4。最大可设置为50,采用默认即可

1.5 Indicadores de seguimiento

-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
 #这行显示了关于size(size 1代表了已经合并记录页的数量)、 free list(代表了插入缓冲中空闲列表长度)和seg size大小(seg size  2显示了当前insert buffer的长度,大小为27572*16K=440M左右)的信 息。0 merges代表合并插入的次数
Ibuf: size 1, free list len 0, seg size 2, 0 merges
#这个标签下的一行信息insert,delete mark,delete 分别表示merge操作合并了多少个insert buffer,delete buffer,purge  buffer 
merged operations:
 insert 0, delete mark 0, delete 0
 #这个标签下的一行信息表示当change buffer发生 merge时表已经被删除了,就不需要再将记录合并到辅助索引中
discarded operations:
 insert 0, delete mark 0, delete 0
 
#因为没有update buffer,所以对一条记录进行update的操作可以分为两个过 程: # A:将记录标记为删除 # B:真正将记录删除 #因此,delete buffer对应update 操作的第一个过程,即将记录标记为删除, purge buffer对应update的第二个过程,即将记录真正地删除

Supongo que te gusta

Origin blog.csdn.net/qq_42979842/article/details/108031299
Recomendado
Clasificación