|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 72 ![]() |
Bonjour,
J'utilise mysql5 pour héberger une base de données de 15Go, amenée à grossir d'1Go par an. je trouve les requêtes très lentes, je me demande si j'atteins les limites de mysql ? Postgress est-elle meilleure ? Postgress supporte t-elle davantage de données ? Existe t-il des comparatifs ? Merci. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : novembre 2005 Messages : 1 899 ![]() |
Comparatif : http://fadace.developpez.com/sgbdcmp/
Sinon, avant de changer de SGBD, il faudrait savoir si vous effectuer la maintenance de vos tables, vos index etc.... Ensuite, les requêtes sont-elles correctement écrites ? Une requêtes rapide pour 100 000 lignes ne le sera pas forcément pour 1 000 000 de lignes, et la dégradation n'est pas forcément proportionnelle au nombre de lignes. Un réécriture des requêtes peut améliorer vos performances de manière significative . |
|
00
|
|
|
#3 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Je dirais même plus :
1) la structure des tables peut améliorer d'un facteur de 2 à 100 2) le choix des index peut améliorer d'un facteur de 2 à 10 000 A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 72 ![]() |
Merci pour vos réponses.
Par rapport à la structure des BDD, à quoi pensez-vous ? Avec mysql5, J'utilise des tables innoDB, et mon client myIsam, ça peut avoir une incidence sur les perfs dans mon cas d'énorme BDD de 15Go ? |
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Concernant la structures des tables :
- Tes tables sont-elles en forme normale ? la normalisation diminue la taille des enregistrements au minimum et accélère leur lecture. La lecture d'enregistrements inutilement chargés est un frein. - Les index sont-ils correctement définis et maintenus ? - Les plans d'exécution des requêtes incriminées ont-ils été analysés pour voir si les indexes en place sont correctement utilisés ou si des indexes sont nécessaires ? - Les requêtes méritent peut-être une réécriture pour mieux tirer profit de la structure et des indexes. Citation:
|
|
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 72 ![]() |
1. Je dis que mon client(l'entreprise cliente, pas le client SQL) est myisam car c'est ce qui apparait dans la définition de ses tables, alors que dans le script de création de BDD, il était spécifié innoDB...
2. Pas 15Go non, la plupart des requêtes portent néanmoins sur un spectre de 1 ou 2 Go en général, et portent sur un ensemble de 10 tables, avec qq jointures. 3. Je vais fouiller la question des index, ils existent par défaut sur chaque clé primaire, mais je ne les maintiens pas à ma connaissance |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Citation:
Pour voir comment rendre disponible un moteur de tables sur ton serveur MySQL, réfère toi à la documentation officielle qui est très riche. Ne parle pas de client ni d'entreprise cliente mais plutôt de moteur de table car c'est vraiment difficile à comprendre. Sinon, ton besoin nécessite-t-il des tables transactionnelles ? De toute façon je dirais que ça relève d'un autre sujet car ça n'a rien à voir avec tes problèmes de perf. Citation:
Afin de vérifier ceci de manière sûre, analyse le plan d'execution de tes requêtes avec la commande EXPLAIN. Voir la doc officielle qui traite très bien du sujet. Si tu ne comprends pas pourquoi certains de tes indexes ne sont pas utilisés, réfère toi encore à la documentation MySQL pour voir comment le moteur utilise ou non les indexes. Si, apès avoir réussi à avoir un plan d'execution optimisé, tu rencontres encore des gros problèmes de perfs sur tes requêtes, alors tu pourras envisager une autre piste (configuration du serveur par ex.) |
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Il faut ajouter des index :
1) sur toutes les clefs étrangères 2) sur toutes les colonnes les plus fréquemment cherchées; Au niveau de la structure de la base (modélisation des tables), outre le respect des formes normales, il est important que vos clefs soient les plus courtes possible : monocolonne et si possible un entier. Évitez les clefs sémantiques, les clef en chaine de caractère set surtout de longeur variable... Enfin, maintenez vos index régulièrement (en même temps que la sauvegarde). A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 72 ![]() |
Je vais donc revoir mes index.
En fait, si je résume, même avec une bdd de 15Go, des requêtes complexes avec multi jointures portant souvent sur la moitiée de la base, une dizaine d'utilisateurs au même moment : mysql5 peut très bien convenir, et postgresql n'est pas forcément un meilleur choix ? |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Pas forcément non car ici on voit clairement qu'il y a un problème de performance dû à la mauvaise modélisation et/ou utilisation de ta base.
Tu as déjà ton système d'informations sous MySQL donc le coût en temps pour une éventuelle migration me fait dire que ce n'est pas un bon choix que de changer de base sans savoir si on est "au bout" de ce que peut offrir la présente. |
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 72 ![]() |
pardon ? En quoi est-il clair que ma base pose un problème de modélisation et/ou utilisation ??
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Le fait de ne pas savoir à quoi est due une lenteur d'exécution de ses requêtes est en soi un problème d'utilisation selon moi. A toi de me donner tort quand tu auras fait tes tests et tes recherches
|
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 72 ![]() |
je ne pensais pas à "te donner tort", je me demandais seulement si j'avais dit qqchose qui prouvait que j'utilisais mal ma BDD, ou que 15Go était une ineptie pour mysql par exemple (ce que des gens m'ont dit déjà)
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
Non rien ne me permet de l'affirmer parmi les informations que tu nous as transmises.
Je pense qu'affirmer de but en blanc que MySQL ne peut pas s'en sortir avec 15Go est extrêmement minimaliste. J'ai toujours vu d'un mauvais oeil les gens qui sous-estiment souvent à tort la capacité des SGBD. |
|
|
00
|
|
|
#15 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
L'important n'est pas la taille de la base de données, mais le volume des données utilisées que l'on apelle fenêtre de données. Si cette fenêtre de données est de 10% de la taille de la base et que celle-ci fait 15 Go, 1,5 Go de RAM suffit à la mettre en cache et donc très peu de requêtes auront besoin de lire le disque.
Cependant une mauvais modélisation implique : 1) une fenêtre de données beaucoup plus large que prévue 2) un volume de données beaucoup plus lourd qu'il ne faudrait Aujourd'hui il existe des bases de données de plus de 100 To qui donnent toute satisfaction. Bien modélisé et avec peu de transactions en mise à jour (point faible de MySQL), 15Go de données ne devrait pas vous poser de problèmes majeurs. A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com