MySQLで派生テーブルを使用する際に問題があります。派生テーブルを使用すると、本質的にクエリの処理が遅くなるのですか?SQLの派生テーブルのパフォーマンスの問題
ここでは、実行しようとしているクエリです。それは実行されず、タイムアウトします。
成功します。本当に、私は最後の参加に問題を切り分けました。最後の参加を取り除くとうまくいきます。しかし、最後の結合を追加すると、実行を拒否します。
SELECT cr.COMMUNICATIONS_ID AS ANSWER_ID,
cr.CONSUMER_ID as VIEWER_ID,
cr.ACTION_LOG_ID,
nc.PARENT_COMMUNICATIONS_ID AS QUESTION_ID,
nc.SENDER_CONSUMER_ID AS REPLIER_ID,
ces.EXPERT_SCORE AS REPLIER_EXPERTISE,
cim.CONSUMER_INTEREST_EXPERT_ID AS DOMAIN
FROM (SELECT 234 AS CONSUMER_ID,
ACTION_LOG_ID,
COMMUNICATIONS_ID
FROM consumer_action_log
WHERE COMM_TYPE_ID=4) AS cr
JOIN network_communications AS nc ON
cr.COMMUNICATIONS_ID=nc.COMMUNICATIONS_ID
JOIN communication_interest_mapping AS cim ON
nc.PARENT_COMMUNICATIONS_ID=cim.COMMUNICATION_ID
JOIN consumer_expert_score AS ces ON
nc.SENDER_CONSUMER_ID=ces.CONSUMER_ID
AND cim.CONSUMER_INTEREST_EXPERT_ID=ces.CONSUMER_EXPERT_ID;
サブクエリを単独で実行するとどうなりますか?それは成功するか?私は、サブクエリの説明をそれ自身で行い、次にもう1つはクエリ全体について説明します。 – TehShrike
成功します。本当に、私は最後の参加に問題を切り分けました。最後の参加を取り除くとうまくいきます。しかし、最後の結合を追加すると、実行を拒否します。 – Spencer
そのクエリのEXPLAINの結果はどうなりますか?各テーブルのconsumer_id/expert_idの両方にインデックスがありますか?私は各テーブルの両方の列をカバーするインデックスをお勧めします。 – TehShrike