次のクエリを使用します
SELECT a.job_number as f31jn, b.job_number as f32jn
FROM
f31 a LEFT JOIN f32 b
ON (a.job_number = b.job_number AND a.date_audit = b.date_audit)
WHERE date_format(a.date_audit, '%b %Y') = 'Dec 2012'
GROUP BY a.job_number, a.ref_id, b.job_number, b.ref_id
上記のクエリは、完了するまでに約160秒かかります。
次の列にインデックスを追加しました。
f31 - job_number, date_audit (separate indexes)
f32 - job_number, date_audit (separate indexes)
EXPLAIN
上記のクエリの結果は
編集
クエリを次のように変更しました
SELECT a.job_number as f31jn, b.job_number as f32jn
FROM
f31 a LEFT JOIN f32 b
ON (a.job_number = b.job_number AND a.date_audit = b.date_audit)
WHERE a.date_audit >= '2012-12-01' AND a.date_audit < '2013-01-01'
GROUP BY a.job_number, a.ref_id, b.job_number, b.ref_id
それでも実行時間は下がらない。150 ~ 160 秒の同じ近似範囲にとどまります。
EXPLAIN
今は次のように出てき
ます
tablea
の場合、まだレコードの 90% を検索しています (合計レコード数は約 68k です)。