Accès régulier à une BDD : comment faire ?

WRInaute impliqué
Bonjour,

Je dois développer un script en PHP qui va chercher toute les 10 sec si le membre à un nouveau message.

Que vaut-il mieux :

1/ faire un accès toutes les 10s à MySQL
2/ lire un fichier du serveur tte les 10s (avec simplexml_load_file de PHP5 par ex)

pour éviter de prendre trop de ressources du serveur ? A moins que vous ayiez mieux à me proposer, ce serait bienvenu aussi !

MERCI !
 
WRInaute passionné
Quel est l'intérêt de faire ça ? Tu vérifis tes mails toutes les 10 secondes ? Tu raffraichis ton navigateur toutes les 10 secondes pour voir si quelque chose à bouger ? Le principe de WRI (un popup qui averti quand on a un message) au moment ou on charge une page me parait plus interessant.
Mais bon : ne sachant pas la finalité de la chose, ça parait compliqué de répondre sur la meilleure façon d'écrouler ton serveur :)
 
WRInaute accro
2/ lire un fichier du serveur tte les 10s (avec simplexml_load_file de PHP5 par ex)
au final, ça aussi ça revient à faire un accès à la base de données, non ?
Sinon tu peux essayer les pools de connexion... :roll:
 
WRInaute impliqué
Je ne rafraichi pas la page telle quelle, mais une zone avec AJAX... l'intérêt est que la personne recoive un mail URGENt même pendant qu'elle lit un texte super long ou regarde une vidéo par exemple...
 
WRInaute impliqué
TOMHTML a dit:
2/ lire un fichier du serveur tte les 10s (avec simplexml_load_file de PHP5 par ex)
au final, ça aussi ça revient à faire un accès à la base de données, non ?
Sinon tu peux essayer les pools de connexion... :roll:

Oui, mais la BDD n'est pas la même : soit en SQL soit dans un fichier XML : je veux justement savoir le plus rapide et mùoins consommateur (sachant que j'ai PHP5 et MySQL 4)
 
WRInaute accro
Dharius a dit:
1/ faire un accès toutes les 10s à MySQL
2/ lire un fichier du serveur tte les 10s (avec simplexml_load_file de PHP5 par ex)

Le premier est probablement à éviter si tu as un peu de monde sur ton serveur. Le deuxième est un peu mieux, mais parser du XML c'est quand même un peu lourd pour pas grand chose.

Je te propose deux options supplémentaires:
- vérifier qu'un fichier existe (quand il y a un nouveau mail, tu crées un truc genre /var/tmp/new_mail_for_<userid>, et dans ton script tu vérifies la présence de ce fichier, et s'il est là, tu notifies l'utilisateur et tu vires le fichier). Tu peux même mettre ça dan sun filesystem en RAM si tu veux. Je ne sais pas quelle est la fonction php idéale pour ça (moi pas programmer en php), mais quelque chose qui fait l'équivalent d'un "stat" Unix est largement suffisant. Dans le pire des cas un "open" devrait être bon (suivi d'un close si le open ne renvoie pas d'erreur).
- utiliser memcached
- utiliser un autre système d'IPC (un zone de shm par exemple).

Jacques.
 
Discussions similaires
N
Réponses
3
Affichages
2K
ninonsclcme
N
Haut