(Re) Bonjour,

je reviens vers vous pour savoir si il serait possible d'optimiser une de mes requêtes. Celle-ci fonctionne, retourne le résultat voulu, mais j'aimerai savoir si il serait possible de l'améliorer pour booster les perfs.

Je cherche à obtenir le nombre de clients inscrit chaque mois ainsi que le nombre de clients convertis (ayant passé une commande). Voici ma requête à l'heure actuelle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT 
        COUNT( client.id ) AS nbClient, 
	DATE_FORMAT( client.created, "%Y" ) AS year, 
	DATE_FORMAT( client.created, "%m" ) AS month, 
	SUM(
		CASE WHEN (SELECT COUNT( * ) FROM commande WHERE commande.idClient = client.id ) > 0
		THEN 1
		ELSE 0
		END
	) AS nbConvertis
FROM client
WHERE client.created >= '2015-01-01'
AND client.created < '2015-09-17'
GROUP BY DATE_FORMAT( client.created, "%Y-%m" )
Je pense que la sous-requête prend beaucoup de ressources (sachant que pour l'année 2015, j'ai environ 1000 clients inscrits). Pensez-vous qu'il est possible de l'optimiser ?

Merci par avance