私はデータベースの中の唯一のダブラーです。LEFT JOINでMySQLクエリがハングアップ
私は最近、130,000行と29,000行の2つのテーブルを扱う必要がありました。彼らは同様のデータを持っており、私はJOINステートメントのいくつかの並べ替えでそれらから引き出す必要があります。残念ながら、これは問題を引き起こすようで、クエリは座ってハングします。次のように
クエリは次のとおりです。
SELECT *
FROM call_status LEFT JOIN queue_log
ON call_status.callId = queue_log.callid
ORDER BY call_status.callId DESC limit 10;
PROCESSLISTをチェックするときに、私は以下を参照してください。
Query 643 Copying to tmp table SELECT * FROM call_status LEFT JOIN queue_log ON call_status.callId = queue_log.callid ORDER BY call
はい、クエリが10分以上実行されています。
私はがを説明し実行してきたし、これが出力IT:私は両方のテーブルの上にのSHOW INDEXを実行した
1 SIMPLE call_status ALL (null) (null) (null) (null) 28954 Using temporary; Using filesort
1 SIMPLE queue_log ALL ix_queue_log_callid (null) (null) (null) 130419
を、両方のは、私には罰金見える:
call_statusを:
call_status 0 PRIMARY 1 callId A 28954 (null) (null) BTREE
call_status 0 ix_order_callId 1 callId A 28954 (null) (null) BTREE
queue_log:
queue_log 1 ix_queue_log_callid 1 callid A 26083 (null) (null) BTREE
私は完全に失わでだし、それはここで午前2時です。
を?:しますか? –
'call_status.callId'に' DESC'インデックスを追加してみてください。 –
@Lieven:MySQLには1種類のインデックス(ASC)しかありません。 –