optimisation de bdd

Petit nouveau ! | 3 Messages

17 mai 2006, 19:26

Bonjour,
je travaille actuellement à la création d'un jeu de role en ligne pour lequel j'ai besoin de stocker beaucoup d'informations dans des bases de données pour chaque joueur, et qui risquent d'être beaucoup solicitées si un grand nombre de joueur se connectent en même temps ... je cherche donc à optimiser au maximum les temps de traitement des requètes sur ma base mysql (principalement de la lecture ).

Je trouve peu d'information à ce sujet aussi j'aurais souhaité avoir votre avis : vaut-il mieux diviser au maximum la base en tables de taille correcte ou au contraire tout réunir dans une immense table, pour alléger au maximum le travail du serveur ? Un grand nombre de colonnes est il plus nuisible qu'un grand nombre de lignes dans les tables ? Y'a t-il des astuces particulilères à suivre pour cette optimisation ( des requètes sql moins lourdes que d'autres ...).

Bon je sais mes question sont un peu générales mais en fait j'ai beaucoup travailler à scinder ma table des comptes en de multiples sous-tables, ce qui signifie qu'il faut parfois executer de multiples requètes sur plusieurs tables et donc j'en suis venu à me demander si finalement une seule table n'était pas préférable ...

Merci pour vos conseils avisés ;) :)

Eléphant du PHP | 142 Messages

17 mai 2006, 22:59

hello,
un des point important est de savoir comment structurer ta base de donnée, choisir le bon type de colonne ( par exemple un TEXT pour un varchar 200 n'est pas top tout comme prendre un int pour un 1 ou 0 )
regarde aussi quel version du serveur de base de donnée tu as et regarde dans le manuel de celui-ci il y a souvent des petit truc, des optimisations

tu peux aussi, si c'est des donnée peux souvent modifier, créer un cache php, par exemple en stockant le profil de quelqu'un dans un tableau écrit dans un fichier...


personnellement moi j'ai tendance à laisser de petite table sur des information souvent lue et rassembler les information qui n'apparaisse que sur une page dans une autre table .....

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

17 mai 2006, 23:21

Si tu sais d'avance que tu feras beaucoup de lecture et peu d'insertion, intéresse toi à la différence entre les moteurs de stockage (MyISAM, InnoDB, etc.)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2006, 17:28

OK, merci pour vos réponses :)

Je vais donc essayer de me documenter un peu plus pour ouvrir mes horizons .. :)