encore 1 petit coup de pouce please
14 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
- caro
- WRInaute impliqué

- Messages: 871
- Inscription: 21 Juil 2003
encore 1 petit coup de pouce please
salut les gars
j'aimerais vraiment que vous me donniez des conseils car j'en peux plus.
comment optimiser MYSQL ???
j'ai une base avec 20 000 enregistrements (5000 en plus par mois) elle fait 5 Mo,
édité : pas faite de 10 tables mais 1 table avec 10 champs.
et il y a 3 index (sur les 3 champs de recherche).
mais ca rame
dès qu'il y a 30 connectés ca rame.
j'ai bo lire les tutoriels sur mysql je sais plus quoi faire,
quelqu'un pourrait me conseiller ?
merci merci merci
pour info :
je suis sur un serveur privé chez amen (virtuozzo) avec 1 Go de disque et 150 mo de mémoire. j'ai du installé ma base de données sur le serveur virtuozzo car elle est trop grosse pour l'installer sur les bases externes fournies avec le pack.
du coup je sature les ressources CPU avec la base et mon site en entier rame.
j'aimerais vraiment que vous me donniez des conseils car j'en peux plus.
comment optimiser MYSQL ???
j'ai une base avec 20 000 enregistrements (5000 en plus par mois) elle fait 5 Mo,
édité : pas faite de 10 tables mais 1 table avec 10 champs.
et il y a 3 index (sur les 3 champs de recherche).
mais ca rame
dès qu'il y a 30 connectés ca rame.
j'ai bo lire les tutoriels sur mysql je sais plus quoi faire,
quelqu'un pourrait me conseiller ?
merci merci merci
pour info :
je suis sur un serveur privé chez amen (virtuozzo) avec 1 Go de disque et 150 mo de mémoire. j'ai du installé ma base de données sur le serveur virtuozzo car elle est trop grosse pour l'installer sur les bases externes fournies avec le pack.
du coup je sature les ressources CPU avec la base et mon site en entier rame.
Dernière édition par caro le Jeu Déc 16, 2004 14:15, édité 3 fois.
- rituel
- WRInaute passionné

- Messages: 1175
- Inscription: 15 Mar 2003
Optimises la structure de ta base et tes requêtes surtout si elles brassent beaucoup de données.
Pour la structure de la base, je peux te conseiller la technique Merise. Pour les requêtes je te conseille de bien faire tes jointures et de respecter l'ordre de restrictivité décroissant des critères dans la clause WHERE.
Pour la structure de la base, je peux te conseiller la technique Merise. Pour les requêtes je te conseille de bien faire tes jointures et de respecter l'ordre de restrictivité décroissant des critères dans la clause WHERE.
- caro
- WRInaute impliqué

- Messages: 871
- Inscription: 21 Juil 2003
ouais mais les gars je suis en train de lire plein d'articles sur mysql mais c'est super compliqué tout ca
- optimiser requete php ?
(connexion, select where, deconnexion)
mais comment ?
- strucutre de la base :
je vais faire des recherches sur "Merise", merci
qu'est ce que c'est les "jointures" ?
"ordre de restricitivité décroissant dans where" kezaco ?
où puis je trouver de la doc qui soit compréhensible pour ces astuces.
et encore merci
comme d'hab vous êtes vraiment des tueurs et moi je suis à la traine
mais comment faites vous pour être aussi bon dans tous les domaines ???
- optimiser requete php ?
(connexion, select where, deconnexion)
mais comment ?
- strucutre de la base :
je vais faire des recherches sur "Merise", merci
qu'est ce que c'est les "jointures" ?
"ordre de restricitivité décroissant dans where" kezaco ?
où puis je trouver de la doc qui soit compréhensible pour ces astuces.
et encore merci
comme d'hab vous êtes vraiment des tueurs et moi je suis à la traine
mais comment faites vous pour être aussi bon dans tous les domaines ???
- trix
- WRInaute discret

- Messages: 97
- Inscription: 23 Mar 2004
Caro,
D'apres les volumes que tu donnes, ta base ne devrait pas avoir de problemes particuliers, meme sur un serveur leger.
Tu dois avoir un probleme avec tes index qui ne sont pas efficaces. En clair, c'est pas parce que tu as un index sur chaque base qu'il va servir a quoi que ce soit.
Si tu sais a quoi ressemblent tes requetes, regardes du cote de 'EXPLAIN SELECT' dans la documentation MySQL. Ca devrait te permettre de voir si tes index sont efficaces, et eventuellement de mieux comprendre comment les ameliorer.
D'apres les volumes que tu donnes, ta base ne devrait pas avoir de problemes particuliers, meme sur un serveur leger.
Tu dois avoir un probleme avec tes index qui ne sont pas efficaces. En clair, c'est pas parce que tu as un index sur chaque base qu'il va servir a quoi que ce soit.
Si tu sais a quoi ressemblent tes requetes, regardes du cote de 'EXPLAIN SELECT' dans la documentation MySQL. Ca devrait te permettre de voir si tes index sont efficaces, et eventuellement de mieux comprendre comment les ameliorer.
-

itsme - WRInaute impliqué

- Messages: 744
- Inscription: 13 Oct 2004
Ta base est meme toute petite par rapport a ce que l'on peut demander a mysql sans avoir besoin d'un serveur muscle.
Ce qui me semble plutot evident en lisant tes reponses, c'est que tu peches au niveau des connaissance techniques (qu'est ce que c'est les "jointures"). Une base mal definie, un ordre select mal agence ou des jointures mal faites peuvent faire ramer et meme provoquer des plantages a repetition.
Ce que tu as de mieux a faire est de te rapprocher de quelqu'un ayant la possibilite d'auditer la structure de ta base et les requettes qui lui sont soumises. Le top etant qu'il en profite pour t'expliquer ce qui ne va pas.
Au moins, tu sauras si c'est vraiment mysql qui est en cause ou tout simplement ton serveur a court de memoire.
Comme toi... ca s'appelle l'apprentissage par l'echec
Ce qui me semble plutot evident en lisant tes reponses, c'est que tu peches au niveau des connaissance techniques (qu'est ce que c'est les "jointures"). Une base mal definie, un ordre select mal agence ou des jointures mal faites peuvent faire ramer et meme provoquer des plantages a repetition.
Ce que tu as de mieux a faire est de te rapprocher de quelqu'un ayant la possibilite d'auditer la structure de ta base et les requettes qui lui sont soumises. Le top etant qu'il en profite pour t'expliquer ce qui ne va pas.
Au moins, tu sauras si c'est vraiment mysql qui est en cause ou tout simplement ton serveur a court de memoire.
mais comment faites vous pour être aussi bon dans tous les domaines ???
Comme toi... ca s'appelle l'apprentissage par l'echec
-

maxttb - WRInaute occasionnel

- Messages: 477
- Inscription: 27 Fév 2004
Hummm... Je risque peut-être d'embrouillé un peu tout le monde, mais Merise n'est qu'une méthode de modélisation. Respecter la norme Merise pour creer une base de donnée ne la rend pas plus rapide, au contraire.
Faire des jointures decroissantes dans le WHERE est une bonne idée, mais MySQL propose des directives de jointure qui peuvent être PARFOIS plus performantes que celles dans le WHERE (notemment tout ce qui est JOIN, LEFT JOIN, etc etc). Ca prend moins de place en mémoire...
Je pense qu'il ne faut pas hésiter à utiliser des repetitions de données (afin de réduire le nombre de jointure gourmandes) mais avec modérations! Creer des index sur les données sujettes aux jointure me parait essentiel.
En tout cas, il est clair que tu ne peux pas savoir toute seule tout ce qu'il faut changer, il vaut mieux dans un premier temps demander à quelqu'un de ton entourage (ou du forum) un peu d'aide. Les bases de données, c'est facile de faire quelque chose qui marche, mais on a vite fait de mal optimiser et faire certaines petites erreurs par-ci par-la qui engouffre toutes les ressources de la machine...
Faire des jointures decroissantes dans le WHERE est une bonne idée, mais MySQL propose des directives de jointure qui peuvent être PARFOIS plus performantes que celles dans le WHERE (notemment tout ce qui est JOIN, LEFT JOIN, etc etc). Ca prend moins de place en mémoire...
Je pense qu'il ne faut pas hésiter à utiliser des repetitions de données (afin de réduire le nombre de jointure gourmandes) mais avec modérations! Creer des index sur les données sujettes aux jointure me parait essentiel.
En tout cas, il est clair que tu ne peux pas savoir toute seule tout ce qu'il faut changer, il vaut mieux dans un premier temps demander à quelqu'un de ton entourage (ou du forum) un peu d'aide. Les bases de données, c'est facile de faire quelque chose qui marche, mais on a vite fait de mal optimiser et faire certaines petites erreurs par-ci par-la qui engouffre toutes les ressources de la machine...
- caro
- WRInaute impliqué

- Messages: 871
- Inscription: 21 Juil 2003
merci pour vos conseils les gars.
je viens de lire la définition des "jointures" sur mysql et je viens donc de m'appercevoir que c'est pas mon problème car j'ai qu' 1 seule table qui contient 10 champs.
je me suis trompé dans mon 1er post.
je vais donc essayer "explain select".
je vous tiens au courant.
merci beaucoup
je viens de lire la définition des "jointures" sur mysql et je viens donc de m'appercevoir que c'est pas mon problème car j'ai qu' 1 seule table qui contient 10 champs.
je me suis trompé dans mon 1er post.
je vais donc essayer "explain select".
je vous tiens au courant.
merci beaucoup
- caro
- WRInaute impliqué

- Messages: 871
- Inscription: 21 Juil 2003
"explain select" me retourne que de bonnes nouvelles,
tout à l'air ok.
cependant je viens de mettre le doigt sur un indice,
c'est sur cette ligne que ca rame le plus :
$table=mysql_query("SELECT * FROM matable WHERE categorie='numero1' and reponse='0' ORDER BY datereponse DESC LIMIT $a,50");
while($ligne=mysql_fetch_object($table))
{
... tableau pour afficher les données, titres et dates..
}
la catégorie"numero1" contient 70% des données de la base,
on dirait que c'est parce qu'il y a trop de données à trier que ca rame, car les autres catégories vont plus vite.
ai je fais une bétise dans cette requete ?
y a t'il des astuces pour faire des requetes sur un champs très important ?
merci
tout à l'air ok.
cependant je viens de mettre le doigt sur un indice,
c'est sur cette ligne que ca rame le plus :
$table=mysql_query("SELECT * FROM matable WHERE categorie='numero1' and reponse='0' ORDER BY datereponse DESC LIMIT $a,50");
while($ligne=mysql_fetch_object($table))
{
... tableau pour afficher les données, titres et dates..
}
la catégorie"numero1" contient 70% des données de la base,
on dirait que c'est parce qu'il y a trop de données à trier que ca rame, car les autres catégories vont plus vite.
ai je fais une bétise dans cette requete ?
y a t'il des astuces pour faire des requetes sur un champs très important ?
merci
-

maxttb - WRInaute occasionnel

- Messages: 477
- Inscription: 27 Fév 2004
Il est clair que si une valeur peut selectionner 70% de tes enregistrements, alors une autre table à coté est largement justifiée.
Si vraiment tu n'as pas envie, tu peux peut-être faire un index sur ce champ, mais bon, c'est pas top top...
Si vraiment tu n'as pas envie, tu peux peut-être faire un index sur ce champ, mais bon, c'est pas top top...
14 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- petite coup de pouce www
- Un petit coup de pouce SVP :)
- Besoin d'un coup de pouce
- PHP petit coup de pouce
- Je recherche un coup de pouce en flash
- Un coup de pouce pour Adrien .....
- Un petit coup de pouce au Téléthon ?
- un coup de pouce pour le référencement
- Coup de pouce pour une formulation
- Function php() - un petit coup de pouce
- Le code source du projet de recherche géographique est disponible - 05-06-2002
- Le Dr Kai-Fu Lee peut travailler pour Google - 15-09-2005
- Live Search bannit certains sites qui échangent des liens - 20-11-2006
- Des détails sur Gmail, le webmail de Google - 15-04-2004
- Google recrute Vinton Cerf, le père d'Internet - 09-09-2005
- Pourquoi il ne faut pas utiliser d'underscore dans les URL - 03-04-2007
- Google va vendre la division Search Marketing de Performics - 03-04-2008
- Google Developer Day 2007 : à Paris et dans 9 autres villes - 27-05-2007
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

