|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2004 Messages : 10 ![]() |
Bonjour,
Je n'avais pas de pb de perf jusqu'à présent, mais c'est la première fois que 'jai affaire à des tables de 100,000 enregsitrements et ça commence à ramer. J'ai des tables de forum par exemple qui mélange des champ integer avec des champ textes. Pensez vous que l'on puisse gagner beaucoup en séparant cette table en 2 tables, l'une contenant les donnée integer, booléen et autres types de base et l'autre contenant les textes, qui n'est utilisée que pour l'affichage final du texte ? Ca demande un changement de conception de la base et pas mal d'effort, si j'avais des retours d'expérience sur ce sujet pour savoir si on gagne beaucoup ça me motiverai à franchir ce pas. Merci! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Pierre Ingénieur qualité méthodes Inscription : mars 2003 Messages : 3 726 ![]() |
Ce serait bien d'avoir la description de cette table.
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet) ----------------------- Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MPUsus magister est optimus |
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Cédric Programmeur Delphi Inscription : octobre 2006 Messages : 177 ![]() |
Il faudrait p-t prévoir la création d'index sur les tables.
Personne ne me contredira en disant que les index font gagner un temps énorme lors des recherches sur la table |
|
|
00
|
|
|
#4 | ||||
|
Invité de passage
![]() Inscription : avril 2004 Messages : 10 ![]() |
Voici la table, elle contient 84000 enregistrements. Ce que j'envisageais donc est de sortir "comment", "message", "title" et "adip" dans une table différente avec correspondance de l'id unique.
Je n'ai pas oublié les index. La plupart des requête utilise "ORDER BY lastedition DESC" et c'est ça qui pombe les résultats. Quand Mysql utilise l'index "lastedition" pour réordonner, il n'utilise pas l'index pour résoudre la clause WHERE et inversement. Il est possible d'optimsier ça en mettant es index su plusieurs colones mais ma clause where peut prendre des valeurs trés diverses ce qui ne me permet pas de faire ça. Donc la seule solution que je vois pour optimiser (peut être gagner 50% du temps?) c'est déjà de séparer le texte des champs à longueur fixe (entiers, etc...). Vote opinion ? Code :
Code :
|
||||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
A priori, je ne vois pas trop en quoi rajouter une jointure accélèrerait les choses, mais c'est difficile de te répondre sans connaître ta requête.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com