2012-12-06 5 views
0

J'ai donc un site immobilier. J'ai une page qui tourne environ 5 requêtes pour construire une page de statistiques. Je me demande s'il existe un moyen d'accélérer cela ou d'optimiser ou de combiner les requêtes afin qu'elles s'exécutent plus rapidement. En ce moment, il prend jusqu'à 5 secondes pour exécuter la page.Accélérer - Plusieurs requêtes MySQL sur une seule page

Requête:

SELECT COUNT(`listing_num`) as `count`, 
     AVG(`price`), 
     AVG(`square_feet`), 
     AVG(`bedroom_total`), 
     AVG(`bathroom_total`), 
     MIN(`price`), 
     MAX(`price`), 
     MIN(`square_feet`), 
     MAX(`square_feet`), 
     MIN(`bathroom_total`), 
     MAX(`bathroom_total`), 
     MIN(`bedroom_total`), 
     MAX(`bedroom_total`), 
     MIN(`psf`), 
     MAX(`psf`), 
     AVG(`psf`) 
FROM  `Res_Active2` 
WHERE `status` != 'S' 

Alors je lance cette requête sur 6 différents moments sur la page avec la clause WHERE changé dans chaque pour que je puisse afficher des statistiques de vente de propriétés, propriétés actives, dans les propriétés du contrat, etc.

Quelle est la bonne manière et le moyen rapide de faire cela? Puis-je utiliser le cache, combiner le sql, quoi que ce soit? Je dois accélérer cette page. Merci.

+0

Avez-vous des index? Le cache de requête MySQL est-il activé? J'ai des pages qui exécutent des centaines de requêtes et sont encore générées dans une seconde ou deux. – GolezTrol

+2

Pouvez-vous ajouter la sortie de 'SHOW CREATE TABLE Res_Active2' à votre question? –

+0

couldnt you jsut statut GROUP BY au lieu d'utiliser un où? – prodigitalson

Répondre

0

Essayez de configurer le cache de requête mysql. Il ne le fera qu'une fois et réutilisera toutes les autres requêtes. Pour activer le cache mysql voir mysql cache

Je suis assez sûr pour vous serez enought il suffit d'ajouter dans votre /etc/my.conf

query_cache_size=30M 

Si cela vous aide pas, vous pouvez créer table spéciale qui ont la main résultat de cette requête et mettre à jour ce résultat toutes les X minutes par un script externe.

+0

Merci beaucoup. Cela a fonctionné comme un charme, maintenant la page se charge en 1-2 secondes maximum. Merci beaucoup. – user982853

Questions connexes