est ce que c'est possible d'indexer une table plus que 64 index ,si oui comment ?
est ce que c'est possible d'indexer une table plus que 64 index ,si oui comment ?
mais quel est l'interet hormis de ralentir plus que fortement les mises à jour et insertion de lignes?
Salut.
Si vous avez atteint le maximum il ne reste que 2 solutions que je connaissent:
1) changer de moteur de table,
2) changer pour un Système d'Exploitation où MySQL va plus loin.
Good Luck![]()
mais ils accelairent les recherches et mon application est orienté RechercheEnvoyé par gregory.broissard
pour chat hotplug : le quel des moteurs gatuits qui suporte ca
Pour le moteur MyISAM, le nombre maximal d'index par table est de 64 à partir de la 4.1.2 Avant c'était 32. D'expérience, cela peut être changé en recompilant MySQL uniquement.
Les tables MEMORY peuvent avoir jusqu'à 32 index par table et 16 colonnes par index. Mais je ne sais pas du tout si une recompilation peut changer cela.
Les tables BDB peuvent avoir jusqu'à 31 index par table
Les tables EXAMPLE peuvent avoir autant d'index qu'on veut je suppose, puisse qu'il ne sert à rien
Les tables FEDERATED le nombre d'index dépend du SGBD distant.
Les tables ISAM peuvent avoir jusqu'à 16 index par table.
Aucun index pour les tabls CSV.
J'i recherché dans la doc pour les tables innodb, je n'ai pas trouvé d'informations.
Je ne sais pas. Peut être que la doc le précise...Envoyé par amika
Mais avez vous réellement 64 index ? Ou s'agit-il d'un problème d'anciens index mal détruits ?
Pour le cas où je vous suggère de faire ceci dans l'interface SQL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 OPTIMIZE TABLE mes_tables_indéxées_séparées_par_des_virgules ;
oui j'ai 64 index .
que ce quel m'apporte cette ligne :
OPTIMIZE TABLE mes_tables_indéxées_séparées_par_des_virgules ;
et tes 64 index sont utilisés?????
Tu as fait des explain sur toutes tes requetes de ton applicatif et ca utilise les 64 index! je peux pas y croire![]()
Peut-on avoir un
Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part show create table_qui_a_64_index
oui la voilaCREATE TABLE `matable` (.......
Optimisation 1 intéressante mais pas forcément pour l'argument de la quantité d'index : Scindez en deux tables cette table. D'un côté tous les champs à longueur dynamique, de l'autre tous les champs à longueurs fixe. Le but est d'obtenir une table de longueur fixe et de monter à 127 index (vous perdez un index par la jointure entre les deux tables)
Optimisation 2 : Virez les index sur les champs de type TINYINT, peu utile. Un index n'est pas très utile quand il n'y a que peu d'options différentes possibles.
Optimisation 3 , la meilleure selon moi : Analyser les log des utilisateurs pour connaître les recherches qu'il demande. En effet, ajoutez les index améliore crtes les recherches, mais les insertions seront très lentes et le choix parmi les index va probablement géner un peu...
Optimisation 4 de gregory.broissard , très bonne aussi : Créez des index composites.
oui la solution qu'il me reste c'est de faire des index composés mais cette solution n'est pas tjs efficace parce que les champs composant l'index ne sont pas tjs ensemble dans la recherche
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager