MySQL クエリの最適化に問題がありますが、これまでのところ、500 レコードに制限された単純な結果を取得するには時間がかかりすぎます。
私のクエリはこれです:
SELECT ou.*, gr.accepted, gr.value
FROM offer_usermeta ou
LEFT JOIN gateway_requests AS gr ON ou.customer_id = gr.customer_id
WHERE ou.customer_id != ""
AND ou.created >= '2012-10-08 00:00:00'
AND ou.created <= '2012-10-08 23:59:59'
ORDER BY ou.created DESC LIMIT 500
このクエリは、おそらく 40,000 レコードを反復処理するのに丸 1 分かかります。顧客 ID に基づいてゲートウェイの応答を取得する必要があり、このクエリでデータが正しいように見えますが、最適化のヒントが必要です。データを個別に取得し、必要に応じて一緒に foreach することを検討していましたが、おそらくはるかに遅くなるでしょう...
任意のヒント?(誰かがそこに派手なトリックを知っているなら、私は codeigniter を使用しています)