[Résolu] Chat: bdd ou fichier?

Chat: bdd ou fichier? [Résolu] - PHP - Programmation

Marsh Posté le 04-12-2007 à 14:30:49    

Bonjour ici!
 
Voilà, j'envisage de créer pour un site un chat utilisant php/ajax. Avant de m'y mettre, je m'interroge sur la rapidité d'accès aux informations. En effet, j'envisage deux méthodes pour "stoquer" les messages du chat:
- Dans un fichier: il est mis à jour à chaque nouvel envoi d'un message
- Dans une bdd mysql
 
Je n'ai pas de préférence "technique" pour l'une ou l'autre de ces solutions. Je m'interroge simplement sur la rapidité de la chose. Côté serveur, qu'est-ce qui est le plus rapide:
1) Accéder à un fichier, et envoyer les infos du fichier au client
2) Accéder à une bdd, et envoyer les infos de la bdd au client
 
Autrement dit, à votre avis, quel est le plus rapide à traiter pour le serveur: envoyer, stoquer et récupérer les messages dans un fichier, ou dans une bdd?
 
Merci!


Message édité par Anarianthe le 05-12-2007 à 11:43:25
Reply

Marsh Posté le 04-12-2007 à 14:30:49   

Reply

Marsh Posté le 04-12-2007 à 14:40:20    

C'est un chat donc un endroit où tout le monde parle en même temps donc un programme où les collisions de mise à jour (et donc les pertes de messages) sont potentiellement nombreuses.
Rien que pour ça je ne me poserais pas la question et je ferais en base de donnée.
 
En plus de ce problème là, les fichiers ont quelques défaut :
1) t'es obligé de tout lire même si tu n'as besoin que de la dernière ligne (avec une base de donnée, tu peux ne sélectionner que les messages posté depuis la dernière demande)
2) si tu ne supprimes jamais les anciens messages, t'auras un fichier énorme (même problème avec la base de donnée) ce qui ralentira chaque vérification des nouveaux messages (là, la base de donnée est moins sensible vu que tu peux lui dire qu'elles lignes tu veux)
3) si tu veux supprimer les messages les plus anciens tu es obligé de réécrire tout le fichier

Reply

Marsh Posté le 05-12-2007 à 11:42:58    

Merci beaucoup! en effet je n'avais pas pensé aux collisions de mise à jour! Donc c'est fait avec mysql, tout fonctionne, merci pour ce conseil!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed