lechtimi
mardi 5 avril 2005 à 16:33
Bonjour
Voila j'ai un petit problème, mon site consomme beaucoup de ressource mysql et on m'a dit de mettre une partie de mes pages en cache pour réduire cette conso. Donc je voudrais savoir comment on fait et si on peut le faire sur n'importe quelle page(désolé pour cette question simple pour certain, mais je suis nul)
D'avance merci
MarvinLeRouge
mardi 5 avril 2005 à 16:56
Salut,
1) La mise en cache des pages php est effectuée par ton serveur php. Les règlages sont spécifiques au produit que tu utilises.
2) Sinon, si ton site consomme beaucoup de ressources mysql, il serait souhaitable que tu optimises tes requètes et ta base. Sais-tu le faire ?
3) Modo, please : le déplacement vers Php/Mysql me semble approprié
lechtimi
mardi 5 avril 2005 à 18:33
Salut
Merci de ta réponse. C'est compliqué d'optimiser les requètes et la base ? Ou puis je trouver un tutoriel ou des renseignements.
D'avance merci
MarvinLeRouge
mardi 5 avril 2005 à 20:26
a) Quels connaissances as-tu en base de données ? Sais-tu structurer une base de données relationnelles ?
B) As-tu beaucoup de requêtes ? Impliquent-elles beaucoup de tables, de données ?
Cariboo
mercredi 6 avril 2005 à 07:31
Les conseils de Marvin Le Rouge sont avisés : face à un problème de ressources Mysql, il faut commencer par op-ti-mi-ser, avant de songer à des solutions de type cache, qui soignent les symptômes, mais pas les causes du mal.
Je sais par expérience qu'une requête mal fichue ou un serveur mysql mal configuré peut mettre un serveur à genoux, quelle que soit la puissance du serveur et les "trucs" employés pour faire en sorte que la requête ne soit appelée qu'une fois par heure au lieu d'une fois par seconde...
Sur la config serveur : dès que l'on arrive aux "limites" d'une configuration donnée, des changements dans la config Apache/Mysql peuvent avoir des conséquences spectaculaires.
Sur l'optimisation des requêtes, c'est facile avec un peu d'expérience dans le domaine. L'instruction "EXPLAIN" aide beaucoup également à détecter des index manquants, ou la nature du problème...
Les règles à suivre sont simples :
- avoir une structure de tables cohérente
- indexer les champs sur lesquels on fait des recherches fréquentes
- faire attention aux "jointures" sur plusieurs tables qui génèrent si l'on n'y prend pas garde des fichiers temporaires de taille gigantesques (dès que je vois un select * from table1,table2,table3 quelque part, j'ai un panneau "danger" qui s'allume dans ma tête)
- et surtout n'appeler que les données dont on a réellement besoin (pourquoi faire un select * from table, quand on a en fait besoin de select champ1 from table where ...)
MarvinLeRouge
mercredi 6 avril 2005 à 08:56
Conseil : fais un joli schéma de ta bdd, mets le en ligne et donne nous l'adresse déjà.
Puis fais une liste de toutes tes requètes, en écrivant à côté leur sens en français (ex. : "récupérer tous les noms des produits dans la catégore truc classés par prix"), et mets ça sur le thread.
NB : Attention : pas 15 km de texte non plus
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez
cliquer ici.