sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué se bloquea esta consulta MySQL?

Porque alguien ha bloqueado una de las tablas o una sola fila. Esto puede suceder, por ejemplo, si ha deshabilitado la confirmación automática (para que pueda deshacer sus modificaciones) en una sesión y olvidó confirmar allí.

Este documento podría ayudar.

[EDITAR] Después de publicar las definiciones de las tablas, puede ver que los tipos de las dos columnas de unión son diferentes. Ahora la pregunta es:¿Qué tipo se elevará/reducirá cuando ejecute la consulta? En su caso, podría ser mejor convertir el tipo de PAYMENT_TRANSACTION_LOG_ID a varchar , especialmente si tiene un índice en TRANSACTION_ID (que debe crear para esta consulta).

De esa manera, algunas filas (o incluso una sola) de la tabla tbl_order_head se seleccionará y luego, se realizará una búsqueda rápida en la tabla tbl_orders_log . Sin esto, la base de datos cargará todos los registros de la tabla de registro y verificará cada registro en busca de una coincidencia en los encabezados de orden encontrados (además de convertir cada ID al tipo en el encabezado, etc.).