La taille n'est pas vraiment un problème, c'est une base (voir meme une table) dédié pour un seul serveurtu exploses la taille de la table
Et la table est en readonly, aucune requete d'insert ou d'update dessus.et allonge le temps de modification
http://www.phpfrance.com/tutoriaux/inde ... bles-mysqlMySQL risque également d'avoir du mal à optimiser les requêtes si il y a trop d'INDEX.
http://mysql.developpez.com/faq/?page=S ... ALEURS_MAXUne table MyISAM peut comporter 32 index
http://dev.mysql.com/doc/refman/5.0/fr/ ... ngine.htmlLe nombre maximal d'index par table est de 64 (32 avant MySQL 4.1.2). Cela peut être changé en recompilant. Le nombre de colonnes maximal par index est 16.
Code : Tout sélectionner
EXPLAIN SELECT round( c1 )
FROM test
WHERE c1 =1
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE test ref c1 c1 4 const 1 Using index
EXPLAIN SELECT c1
FROM test
WHERE c1 =1
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE test ref c1 c1 4 const 1 Using index
J'ai donc constaté que dans ce genre de requete, si je n'ai pas de WHERE et que les champs (civilite et code_region) dans le select son indexé, les calculs vont TRES vite, mais des qu'il y a un WHERE, les index ne sont plus utilisé.SELECT sum(civilite='M') , sum(civilite='MLLE') , sum(civilite='MME'), sum(civilite='NR') ,
,sum(code_region='23'),sum(code_region='24') ,sum(code_region='25'), NORMANDIE', sum(code_region='26'), sum(code_region='31')
WHERE couplage_global IN ('CAN','CPL','CSA') OR ( anc_an > 25 AND ancien < 5 )