Accès MySQL

cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 - 16 juil. 2005 à 13:07
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 17 juil. 2005 à 18:33
Le sujet est dans divers parce qu'il touche à plusieurs domaines différents...

Voilà j'ai posé deux trois questions sur ce forum ces derniers temps
ceci dans le but de développer un projet personnel qui me tient à coeur
: je souhait développer un jeux de rôle en ligne.

Maintenant je pense que je vais m'adresser à des experts car cette question reste pour moi sans réponse :

Je travaille avec une base MySQL en plus de mon serveur apache. ET, je
fais des accès à cette base pour pouvoir connaitre ce qu'il faut (ex :
au moment du log savoir si le login/mdp est correct)

Mais pas seulement pour cela, il faut aussi connaitre des infos plus
importantes, comme les caractéristiques de chaque personnages du
joueur, les équipements qu'ils possèdent...
Je
me suis dit que dans un soucis d'optimisation il valait mieux
sauvegarder en session toutes ces valeurs : les persos, les
équipements, etc... Pour tout ça des classes ont été créée et je
serialize avant de mettre en session. Ca fait déjà pas mal de fonctions
et de classes et je me demande si j'ai fait un bon choix. Car le moment
ou ça devient génant c'est quand on doit fait des modifications :
Evidemment je modifie ma session mais il faut aussi faire une petite
requete.

Pour résumer je ne regarde la base qu'au tout début, lorsque je me
connecte ensuite je fais avec ce qui est en session sauf pour les
modifications, qui sont double en BD et en session évidemment.



Si j'avais fait tout ça en JSP ça aurait été un peu plus simple
j'aurais fait une simple interface que j'aurais implanter à chaque fois
mais là c'est relou...



Ma question et oui j'y viens : Est-ce que tout cela rime à quelques
chose ? je veux dire d'accord je fais moins de requete mais en même
temps je fais pas mal de traitement avec les sessions etc...

En gros est-ce que j'ai vraiment gagné du temps ?



PS : la petite question qui pourrait faire avancer le chmilblic c'est
où sont sauver les variables de sessions coté serveur je suppose ?

10 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 juil. 2005 à 14:10
Bah tout depend du nombre de connectes que tu auras en simultannee. Si
tu en as bcp, ta solution est peut-etre meilleure. Mais si tu en as
relativement peu, autant faire les appels a la base.

Ca reste mon avis...

serialiser desrialiser est tres bien, mais c'est tres gourmand...

Les classes, pareil.

Ceci dit, ta demarche me parait logique : tu crees un objet...a partir
d'infos tirees de ta bdd. C'est logique! Travaille sur l'optimisation
de tes objets plutot : heritage notamment, tres important et pratique...
0
cs_sjon Messages postés 861 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 29 novembre 2006 1
16 juil. 2005 à 14:28
Sael og blesud



Même avis que Malalam ... Cependant si vous êtes propriétaire du server
je vous conseille de créer des instances de MySQL et ainsi d'user de
requêtes ... Mais là aussi cela n'est que mon avis ... Par ailleurs si
vous optez pour cette solution une " memory watchdog " sera dès plus
recommendable ...;-)

Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
16 juil. 2005 à 19:27
Salut,



"Je me suis dit que dans un soucis d'optimisation il valait mieux sauvegarder en session toutes ces valeurs"



Excellent choix ça évite les requêtes inutiles ;-)



Par contre pour les mises à jour il te faut une requête, mais bon
personnellement je te conseille de faire le moins appel à la base,
après tout dépend des fonctions php que tu utilises, je ne sais pas si
serialise est gourmande ou pas étant donné que je n'utilise pas cette
fonction et je n'ai donc jamais fait de benchmark avec pour comparer.
Mais un accès base nécessite des ressources et du temps : temps de la
connexion, temps de la requête, etc... Ce n'est pas négligeable. Je te
conseillerai plutôt d'optimiser ton code PHP tout en gardant ton
système de session actuel. Regarde si la fonction serialise t'es
vraiment utile, réduis le nombre de fonctions PHP de ton script, il y
en a surement quelques unes d'inutiles ou de remplaçables par quelque
chose de plus optimisé.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
16 juil. 2005 à 21:04
Il faudrait faire des tests en effet. Mais la serialisation, c'est TRES gourmand, vraiment.

C'est aussi tres pratique ;-)

Mais bon, un objet, c'est deja pas leger leger...tu le serialises...tu
le stockes, tu le deserialises (objet devient chaine complexe, chaine
complexce devient objet)...



Bah...

Faut faire des tests.

Mais le principe est le bon : inutile et illogique de retourner
chercher dans ta base une info que tu es deja alle chercher, surtout si
cet info devient la propriete d''un objet : tu ne vas pas recreer un
objet a chaque fois! T'as un objet cree, tu le gardes, lol. Parce que
c'est tres gourmand aussi, la programmation objet en php. Sauf si on
est un mega pro, et encore...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
17 juil. 2005 à 14:04
Je réponds à tous ces remarques...

1. je ne peux pas bannir serialize sinon je ne peux rien mettre en
session car $_SESSION ne prend que des mixed et non des objets. A moins
que vous ayez une solution miracle



2. Qu'est-ce qu'une "memory watchdog", ça m'a l'air très intéressant mais je ne sais pas ce que ça veut dire...



3. Ce modèle qui permet de mettre en session est très pratique mais il
faut quand même que je fasse des accès intempestifs à la bd à certains
endroits de mon site mais là il y a de l'optimisation coté MySQL donc
pas de soucis. C'est à un certain endroit que j'ai voulu faire de
l'optimisation coté PHP car c'était possible... Et que logiquement je
me suis dit que ça allait être couteux coté MySQL....



4. Maintenant je veux bien faire des tests, mais je ne pense pas que ce
soit vraiment utile si on compare les deux solutions je suis sur qu'il
va y avoir ce phénomène.

En lecture mon système est meilleur ET plus fluide car quand on lis
simplement les données celle qui sont en session donc pas d'accès à la
BD

Mais en modification la mienne est plus couteuse LOGIQUE puisqu'il faut
à la fois modifier la session (deserialiser, modifier l'objet,
remplacer l'ancien par le nouveau) et la BD (une tite requete)

La ou ça deviendrait génant c'est quand mon système serait moins rapide
en lecture là je serais degouté. Mais je me rassure en me disant que de
toute façon je fait moins d'accès à la BD, donc aux heures de grandes
affluences le serveur souffriras moins....



5. je suis preneur sur tous les conseils d'optimisation que vous pouvez
me donner également en matière de PHP OO, parce que je débuté le PHP-OO
il y a 6 mois pendant pas très longtemps et ensuite je suis passé à une
autre techno !?!



6 Si y a des volontaires je suis prêts à prendre de bons développeurs
pour me filer un coup de main ou au mins me donner des conseils...

Bonne vacances pour ceux qui ne travaillent pas pour les autres no comment
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
17 juil. 2005 à 14:49
Consulte ce lien :



Optimiser PHP

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
17 juil. 2005 à 18:03
OK Antho, je suis d'accord avec ton site je suis sur que tes tests sont exacts. Je vais essayé de faire ça je vais peut être gagné des ms mais petit chouilla par petit chouilla, je vais gagné du temps...
Sinon personne pour un coup de main ?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
17 juil. 2005 à 18:08
Bah moi je veux bien t'aider à optimiser ton code si tu le postes ici,
enfin tu postes de petites parties, parce que 30 ko de code laisse
tomber (par exemple)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_Zart Messages postés 285 Date d'inscription jeudi 29 juillet 2004 Statut Membre Dernière intervention 27 juin 2006 1
17 juil. 2005 à 18:13
lol
Ouais je vais voir ce que je poste j'ai plus trop le temps j'ai pas l'adsl alors c'est chaud.... En plus je suis encore chez mes vieux donc...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
17 juil. 2005 à 18:33
ok :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0