MySQL: emisión de actualizaciones de baja prioridad

MySQL: emisión de actualizaciones de baja prioridad

¿Existe alguna forma de ejecutar actualizaciones de baja prioridad en MySQL?

Estoy ejecutando una aplicación de carga muy alta en la que fácilmente puede haber literalmente miles de usuarios intentando actualizar simultáneamente los mismos registros de datos. Se trata principalmente de información estadística basada en sesiones, gran parte de la cual podría ignorarse en caso de que haya un tiempo de espera asociado con la solicitud. Me gustaría poder verificar si alguna tabla/fila está bloqueada y, de ser así, no pasar una consulta de actualización al servidor. ¿Es eso posible?

Respuesta1

¿Qué motor de base de datos estás usando? ¿MyISAM o InnoDB? Si es MyISAM, puede usar el siguiente comando para ver los bloqueos:

SHOW FULL PROCESSLIST;

Fuente:¿Cómo puedo mostrar los bloqueos de MySQL?

Sin embargo, le recomendaría que adoptara un enfoque diferente. En lugar de tener un único punto de discordia, simplemente inserte una nueva fila para cada punto de datos con INSERT DELAYED. Luego, al final del día, o cuando necesite los datos, puede procesar todo por lotes. Tenga en cuenta que esto solo funciona para los tipos de motor MyISAM, MEMORIA y ARCHIVO.

Fuente: dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

Creo que esta pregunta pertenece a Stack Overflow. Probablemente obtendrá una mejor respuesta allí.

-Geoffrey Lee

información relacionada