Bonjour,

Le serveur mysql sur une requête à fait un shutdown.

Cette requête fonctionne très bien en environnement de test (les volumes sont faible). Mais en environnement de production c'est la cata.

Voici la requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
SELECT utilisateur_dossiers.id_user, user_initial, compte_etat_civil.id_compte, compte_num_dos, compte_civilite_id, compte_nom, compte_prenom, compte_etat_civil.id_trt, count(compte_etat_civil.id_compte) AS dossier, count(compte_mesures.id_compte) AS mesure, count(compte_activite.id_compte) AS activite, count(compte_document_id.id_compte) AS identite, count(compte_adresses.id_compte) AS adresse, count(compte_securite_sociale.id_compte) AS secu, count(compte_mutuelle.id_compte) AS mutuelle, count(compte_ayants_droits.id_compte) AS ayantdroit, count(compte_revers_entete.id_compte) AS reversement, count(compte_handicap.id_compte) AS handicap, count(compte_caf_prestations.id_compte) AS caf, count(compte_tiers.id_compte) AS tiers , count(compte_banque_compte.id_compte) AS banque, count(compte_assurance.id_compte) AS assurance, count(compte_patrimoine.id_compte) AS patrimoine, count(compte_cloture.id_compte) AS cloture, count(compte_pub_log.id_compte) AS publipostage, count(compte_budgets.id_compte) AS budget, count(compte_banque_mvt.id_compte) AS mvtbque 
FROM utilisateur_dossiers 
LEFT OUTER JOIN utilisateur 
	ON utilisateur_dossiers.id_user=utilisateur.id_user 
LEFT OUTER JOIN compte_etat_civil 
	ON utilisateur_dossiers.id_compte=compte_etat_civil.id_compte 
LEFT OUTER JOIN compte_mesures 
	ON utilisateur_dossiers.id_compte =compte_mesures.id_compte 
	AND compte_mesures.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_activite 
	ON utilisateur_dossiers.id_compte = compte_activite.id_compte 
	AND compte_activite.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_document_id 
	ON utilisateur_dossiers.id_compte = compte_document_id.id_compte 
	AND compte_document_id.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_adresses 
	ON utilisateur_dossiers.id_compte = compte_adresses.id_compte 
	AND compte_adresses.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_securite_sociale 
	ON utilisateur_dossiers.id_compte = compte_securite_sociale.id_compte 
	AND compte_securite_sociale.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_mutuelle 
	ON utilisateur_dossiers.id_compte = compte_mutuelle.id_compte 
	AND compte_mutuelle.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_ayants_droits 
	ON utilisateur_dossiers.id_compte = compte_ayants_droits.id_compte 
	AND compte_ayants_droits.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_revers_entete 
	ON utilisateur_dossiers.id_compte = compte_revers_entete.id_compte 
	AND compte_revers_entete.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_handicap 
	ON utilisateur_dossiers.id_compte = compte_handicap.id_compte 
	AND compte_handicap.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_caf_prestations 
	ON utilisateur_dossiers.id_compte = compte_caf_prestations.id_compte 
	AND compte_caf_prestations.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_tiers 
	ON utilisateur_dossiers.id_compte = compte_tiers.id_compte 
	AND compte_tiers.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_assurance 
	ON utilisateur_dossiers.id_compte = compte_assurance.id_compte 
	AND compte_assurance.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_banque_compte 
	ON utilisateur_dossiers.id_compte = compte_banque_compte.id_compte 
	AND compte_banque_compte.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_patrimoine 
	ON utilisateur_dossiers.id_compte = compte_patrimoine.id_compte 
	AND compte_patrimoine.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_cloture 
	ON utilisateur_dossiers.id_compte = compte_cloture.id_compte 
	AND compte_cloture.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_pub_log 
	ON utilisateur_dossiers.id_compte = compte_pub_log.id_compte 
	AND compte_pub_log.id_trt BETWEEN '2' AND '4' 
	AND CURDATE() > compte_pub_log.alerte_date 
	AND compte_pub_log.alerte_date != '0000-00-00' 
	AND compte_pub_log.alerte_valide = 0 
LEFT OUTER JOIN compte_budgets 
	ON utilisateur_dossiers.id_compte = compte_budgets.id_compte 
	AND compte_budgets.id_trt BETWEEN '2' AND '4' 
LEFT OUTER JOIN compte_banque_mvt 
	ON utilisateur_dossiers.id_compte = compte_banque_mvt.id_compte 
	AND compte_banque_mvt.id_trt BETWEEN '2' AND '4' 
WHERE (CURDATE() BETWEEN gest_date_debut AND gest_date_fin 
	OR CURDATE()>=gest_date_debut AND gest_date_fin ='0000-00-00') 
AND utilisateur_dossiers.id_trt BETWEEN '1' AND '4' 
AND utilisateur.id_trt BETWEEN '1' AND '4' 
AND ( compte_etat_civil.id_trt BETWEEN '2' AND '4' 
	OR compte_mesures.id_trt BETWEEN '2' AND '4' 
	OR compte_activite.id_trt BETWEEN '2' AND '4'
	OR compte_document_id.id_trt BETWEEN '2' AND '4' 
	OR compte_adresses.id_trt BETWEEN '2' AND '4' 
	OR compte_securite_sociale.id_trt BETWEEN '2' AND '4' 
	OR compte_mutuelle.id_trt BETWEEN '2' AND '4' 
	OR compte_ayants_droits.id_trt BETWEEN '2' AND '4' 
	OR compte_revers_entete.id_trt BETWEEN '2' AND '4' 
	OR compte_handicap.id_trt BETWEEN '2' AND '4' 
	OR compte_caf_prestations.id_trt BETWEEN '2' AND '4' 
	OR compte_tiers.id_trt BETWEEN '2' AND '4' 
	OR compte_assurance.id_trt BETWEEN '2' AND '4' 
	OR compte_banque_compte.id_trt BETWEEN '2' AND '4' 
	OR compte_patrimoine.id_trt BETWEEN '2' AND '4' 
	OR compte_cloture.id_trt BETWEEN '2' AND '4' 
	OR compte_pub_log.id_trt BETWEEN '2' AND '4' 
	OR compte_budgets.id_trt BETWEEN '2' AND '4' 
	OR compte_banque_mvt.id_trt BETWEEN '2' AND '4' ) 
GROUP BY utilisateur_dossiers.id_compte 
ORDER BY compte_nom, compte_prenom
Voici le résultat de EXPLAIN sur la requete :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
table 	type 	possible_keys 	key 	key_len 	ref 	rows 	Extra 
utilisateur_dossiers	ALL	gest_date_debut,gest_date_fin,id_trt,id_user	NULL	NULL	NULL	5404	Using where; Using temporary; Using filesort
utilisateur	eq_ref	PRIMARY,id_trt	PRIMARY	4	utilisateur_dossiers.id_user	1	Using where
compte_etat_civil	eq_ref	PRIMARY	PRIMARY	4	utilisateur_dossiers.id_compte	1	 
compte_mesures	ALL	NULL	NULL	NULL	NULL	2028	 
compte_activite	ref	id_compte,id_trt	id_compte	4	utilisateur_dossiers.id_compte	1	Using where
compte_document_id	ref	id_compte,id_trt	id_compte	4	utilisateur_dossiers.id_compte	2	Using where
compte_adresses	ALL	NULL	NULL	NULL	NULL	2133	 
compte_securite_sociale	ref	id_compte	id_compte	4	utilisateur_dossiers.id_compte	1	 
compte_mutuelle	ref	id_compte	id_compte	4	utilisateur_dossiers.id_compte	2	 
compte_ayants_droits	range	id_compte,id_trt	id_trt	1	NULL	1	Using where
compte_revers_entete	ref	id_compte,id_trt	id_compte	4	utilisateur_dossiers.id_compte	12	 
compte_handicap	ref	id_compte,id_trt	id_compte	4	utilisateur_dossiers.id_compte	1	Using where
compte_caf_prestations	ref	id_compte,id_trt	id_compte	4	utilisateur_dossiers.id_compte	1	Using where
compte_tiers	ALL	NULL	NULL	NULL	NULL	24753	 
compte_assurance	range	id_compte,id_trt	id_trt	1	NULL	2	Using where
compte_banque_compte	ALL	NULL	NULL	NULL	NULL	2811	 
compte_patrimoine	range	id_compte,id_trt	id_trt	1	NULL	3	Using where
compte_cloture	ref	id_trt,id_compte	id_compte	4	utilisateur_dossiers.id_compte	1	Using where
compte_pub_log	ALL	NULL	NULL	NULL	NULL	14614	 
compte_budgets	ALL	NULL	NULL	NULL	NULL	233	 
compte_banque_mvt	range	id_compte,id_trt	id_trt	1	NULL	1	Using where
Comment interpréter le résultat de EXPLAIN ?

Merci d'avance