Réduire activité SQL (Hebergement mutualisé.)


mustru
WRInaute discret
WRInaute discret
 
Messages: 229
Inscription: 10 Juil 2006

Réduire activité SQL (Hebergement mutualisé.)

Message le Mer Avr 18, 2007 15:51

Bonjour a tous,

j'ai récu il y'a quelque temps un mail de 1and1 :

Notre service de surveillance réseau nous informe que votre base MySQL
est à l'origine de lenteurs sur notre serveur MySQL mutualisé.

db171204736

Une telle consommation ne peut être acceptée sur un hébergement
mutualisé chez 1&1 Internet par respect pour les autres clients
partageant les ressources avec vous.

Nous vous demandons soit de réduire de votre activité SQL, soit
d'envisager le passage vers une offre en serveur dédié.[...]


Depuis ma base à été bloqué, je cherche donc des moyens éfficace de réduire ma consommation SQL, j'ai donc besoin de vos précieux conseils...

Merci d'avance.[/code]


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Mer Avr 18, 2007 15:55

il va falloir que tu trouves déjà quels scripts sont à l origine de ce problème, et seul toi va pouvoir le faire. après il existe des facons de reduire l activité sql avec un systeme de cache, pour ne pas avoir à chaque affichage de page à la regenerer si elle ne change pas ou peu, mais tout depend du site en question


mustru
WRInaute discret
WRInaute discret
 
Messages: 229
Inscription: 10 Juil 2006

Message le Mer Avr 18, 2007 16:02

Merci e-kiwi,

Mon site est un site d'abandonware http://www.abandonware-utopia.com (offline pour l'instant.) les requetes les plus éxécutées sont des liste de jeux a télécharger, il y'en a a peut pres 500 que l'on peut afficher en fonction de plusieurs critères (date ajout, année, hits...) de plus, j'affiche les résultat sur plusieurs pages, donc dés que l'utilisateur change de page la requete est rééxécutée...

Un système de cache est t-il difficile à utiliser ?

J'ai déja supprimer pas mal de requete et j'espere trouver encore des solutions afin de pouvoir tenir quelques mois avant de partir sur un serveur dédié.

Merci de vos conseils.


e-kiwi
Modérateur
Modérateur
 
Messages: 15618
Inscription: 23 Déc 2003

Message le Mer Avr 18, 2007 16:16

ca doit plutot etre une optimisation BDD à faire dessus :) voir combien tu as de tables, quels sont tes champs indexés, et quelles requetes tu fais


mustru
WRInaute discret
WRInaute discret
 
Messages: 229
Inscription: 10 Juil 2006

Message le Mer Avr 18, 2007 17:02

Merci beaucoup pour vos conseil, je vais travailler dans ce sens. :wink:

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Mer Avr 18, 2007 17:55

+1 avec e-kiwi. Optimise tes tables, mets des clés primaires aux bons endroits, et des clés d'index à des endroits stratégiques (documente toi un peu là dessus, c'est pas bien compliqué)

jarreweb
WRInaute discret
WRInaute discret
 
Messages: 192
Inscription: 12 Sep 2003

Message le Jeu Avr 19, 2007 9:32

et ne pas oublier de fermer le plus rapidement possible la connexion à la base sur chaque page, ca evite notamment les erreurs "too many connections"

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Jeu Avr 19, 2007 9:58

Mais augmente la consommation de cpu (tu te connecte, déconnecte, reconnecte ... C'est comme si pour aller chercher un pack d'eau, tu faisait 8 fois le trajet vers ta grande surface)

ekay
WRInaute discret
WRInaute discret
 
Messages: 57
Inscription: 7 Mar 2005

Message le Jeu Avr 19, 2007 10:53

mustru.. cache html.. voir le post it en debut de forum..
ob get contents et filemtime

jarreweb
WRInaute discret
WRInaute discret
 
Messages: 192
Inscription: 12 Sep 2003

Message le Jeu Avr 19, 2007 12:05

kazhar a écrit:Mais augmente la consommation de cpu (tu te connecte, déconnecte, reconnecte ... C'est comme si pour aller chercher un pack d'eau, tu faisait 8 fois le trajet vers ta grande surface)

c'est pas comme ca que je le pensais :)
tu te connectes et déconnectes une seule fois par page
se connecter le plus tard possible et se déconnecter le plus tôt possible.

ekay
WRInaute discret
WRInaute discret
 
Messages: 57
Inscription: 7 Mar 2005

Message le Jeu Avr 19, 2007 12:16

jarweb.. kazhar a entierement raison.. aucun avantage a le faire de la sorte..

il vaut mieux garder la connexion ouverte.. faire des requetes bien choisies, optimisées, optimiser la base et les index, choisir les bons types.. eventuellement vider la memoire dans les scripts tres consommateurs...

puis en 2eme etape, les caches de requetes sql, les caches php et les caches html...

ca c'est mon avis.

et avant tout faire de belles requetes et c'est impressionnant ce qu'on peut y gagner.. !

et ne pas hesiter, a tedter et benchmarker pour savoir si on est sur la bonne voie ou pas

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Jeu Avr 19, 2007 12:36

Si tu n'a pas un trafic enorme (par enorme, j'entends plus de 7k vu/jour), tu peut faire sans cache en optimisant au maximum la base de données.

Cette optimisation passe par ce que je disais plus haut, la mise en place de clés primaires et de clés d'index.
Et la différence se voit surtout si tu a beaucoup de données dans la base.

Une requête de sélection de données sur une table contenant environ 3 millions d'uplets prendra plus de 30 secondes si tu n'a aucune clé.
Tu descendra bien en dessous d'une seconde si tu a une clé primaire (et une clé index si tu ne fait pas la sélection en cherchant sur la clé primaire)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités