かなり最適化されたクエリがあります。ただし、この結合を追加すると、クエリが 70 秒増加します。私が見ることができる最大の問題は、同じ日付に基づいて 2 つの日時を互いに比較する必要があることです。つまり、2013-01-01 8:37am は 2013-01-01 9:01am に結合する必要があります。したがって、まず両方を日付に変換してから比較します。
テーブルを変更せずにこれを行うより速い方法はありますか? 以下の結合のすべてのフィールドにインデックスを追加しました。
LEFT JOIN ins ON
DATE(ins.ins_date) = DATE(r.date)
更新: 日付から数時間を減算し、日付を直接比較するなど、いくつかの異なるトリックを試すことになり、少なくとも1つのインデックスが活用され、結合にさらに基準を追加すると、DATE() を実行しようとするレコードを減らすのに役立ちます操作オン。下のポスターにも、日付用に別のフィールドを作成するという有効な提案があったと思いますが、この場合のテーブルを変更することはできませんが、将来これを試すかもしれません.