Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que esta consulta MySQL trava?


Porque alguém bloqueou uma das tabelas ou uma única linha. Isso pode acontecer, por exemplo, se você desativou o commit automático (para poder reverter suas modificações) em uma sessão e esqueceu de fazer o commit lá.

Este documento pode ajudar.

[EDIT] Depois de postar as definições das tabelas, você pode ver que os tipos das duas colunas de junção são diferentes. Agora a pergunta é:Qual tipo será convertido para cima/para baixo quando você executar a consulta? No seu caso, pode ser melhor transmitir o tipo de PAYMENT_TRANSACTION_LOG_ID para varchar , especialmente se você tiver um índice em TRANSACTION_ID (que você deve criar para esta consulta).

Dessa forma, algumas linhas (ou mesmo uma única) da tabela tbl_order_head será selecionado e então, uma busca rápida acontece na tabela tbl_orders_log . Sem isso, o banco de dados carregará todos os registros da tabela de log e verificará cada registro para uma correspondência nos cabeçalhos de pedidos encontrados (além da conversão de cada ID para o tipo no cabeçalho, etc).