Mysql
 sql >> Database >  >> RDS >> Mysql

Perché questa query MySQL si blocca?

Perché qualcuno ha bloccato uno dei tavoli o una singola riga. Questo può accadere, ad esempio, se hai disabilitato il commit automatico (in modo da poter ripristinare le modifiche) in una sessione e hai dimenticato di eseguire il commit lì.

Questo documento potrebbe aiutare.

[EDIT] Dopo aver pubblicato le definizioni delle tabelle, puoi vedere che i tipi delle due colonne di join sono diversi. Ora la domanda è:quale tipo sarà up-/downcast quando si esegue la query? Nel tuo caso, potrebbe essere meglio trasmettere il tipo di PAYMENT_TRANSACTION_LOG_ID a varchar , soprattutto se hai un indice su TRANSACTION_ID (che dovresti creare per questa query).

In questo modo, poche righe (o anche una sola) dalla tabella tbl_order_head verrà selezionato e quindi, viene eseguita una rapida ricerca nella tabella tbl_orders_log . Senza questo, il database caricherà tutti i record dalla tabella di registro e controllerà ogni record per una corrispondenza nelle intestazioni dell'ordine trovato (oltre a trasmettere ogni ID al tipo nell'intestazione, ecc.).