J'ai un problème pour optimiser une requête MySQL, mais jusqu'à présent, il faut trop de temps pour obtenir un résultat simple limité à 500 enregistrements.MySQL JOIN vs PHP foreach loop
Ma requête est la suivante:
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
Cette requête prend une minute entière à parcourir peut-être 40 000 dossiers. J'en ai besoin pour récupérer les réponses de la passerelle en fonction de l'identifiant client s'il y en a et que les données semblent correctes avec cette requête, mais j'ai besoin de conseils pour optimiser. Je pensais juste tirer les données séparément et les forcer ensemble comme nécessaire, mais je sais que cela va probablement être beaucoup plus lent ...
Des conseils? (J'utilise codeigniter si quelqu'un y connaît aussi un truc de fantaisie)
S'il vous plaît poster la structure de vos tables. –