besoin de votre avis sur un insert dans une boucle - PHP - Programmation
Marsh Posté le 01-12-2004 à 19:22:57
Je ne sais pas si ça changera beaucoup de choses au niveau optimisation (et je suppose que la réponse est soit "carrément" soit "pas du tout" ), mais perso je ferais un seul insert, la boucle servant alors à concaténer les différentes parties de celui-ci.
Mais le mieux je pense, si le schéma de ton truc l'y autorise, serait de définir une valeur spéciale pour id_contact qui signifierait "tout le monde".
Marsh Posté le 01-12-2004 à 19:27:01
Sielfried a écrit : Je ne sais pas si ça changera beaucoup de choses au niveau optimisation (et je suppose que la réponse est soit "carrément" soit "pas du tout" ), mais perso je ferais un seul insert, la boucle servant alors à concaténer les différentes parties de celui-ci. |
Oui justement j'y ai pensé mais à ce moment là comment prendre en compte les messages lu, non lu et corbeille ?
On ne peut pas...
Sinon je suis désolé mais je n'ai pas compris la première partie de ton message
Edit: ah si j'ai compris, effectivement cette solution est interessante !
je suis interessé d'avoir un avis.
Marsh Posté le 01-12-2004 à 22:56:55
Je suis désolé de faire un mais je n'ai pas eu de réponse !
A ma place que feriez vous alors ?
Marsh Posté le 01-12-2004 à 23:03:14
Perso en tout cas j'ai un système de messagerie sur mon site et je fais comme ça (car effectivement j'ai aussi les notions de lu/non lu etc). Cela dit j'ai assez peu de membres.
Ce qui est sûr c'est que je doute qu'il y ait une solution sans "insert massif", vu que comme tu le dis il faut que chaque réception de message soit gérée indépendamment, son flag vu/non vu, la corbeille si tu la gères, etc.
Marsh Posté le 01-12-2004 à 23:11:15
Sielfried a écrit : Perso en tout cas j'ai un système de messagerie sur mon site et je fais comme ça (car effectivement j'ai aussi les notions de lu/non lu etc). Cela dit j'ai assez peu de membres. |
oui justement...
Mais bon ça me rassure que tu utilises la même solution que moi, j'avais peur qu'on me traite de malade de faire un INSERT dans une boucle
Marsh Posté le 01-12-2004 à 23:17:28
scarf3ss3 a écrit : oui justement... |
Vi enfin je fais qu'un seul INSERT au final (cf mon premier post), dans le doute.
Marsh Posté le 01-12-2004 à 23:19:02
Sielfried a écrit : Vi enfin je fais qu'un seul INSERT au final (cf mon premier post), dans le doute. |
D'ailleurs à ce propos, j'ai compris sans comprendre. Je ne savais pas qu'on pouvait insérer plusieurs enregistrement d'un seul coup !
comment ça se présente ???
Marsh Posté le 01-12-2004 à 23:26:56
insert into table (champ1, champ2, ..., champN)
values
(val1, val2, ... valN),
(val21, val22,... val2N),
...
(valN1, valN2,... valNN);
Marsh Posté le 01-12-2004 à 23:42:46
Sielfried a écrit : insert into table (champ1, champ2, ..., champN) |
Merci
Marsh Posté le 02-12-2004 à 00:05:23
Un seul Insert a plusieurs enregistrements sinon ton serveur SQL va faire la gueule...
La boucle ne servant qu'a concatener le texte...
Marsh Posté le 02-12-2004 à 00:28:41
Manaloup a écrit : Un seul Insert a plusieurs enregistrements sinon ton serveur SQL va faire la gueule... |
ok merci
Marsh Posté le 01-12-2004 à 19:12:54
Voilà je mets au point un service de messagerie interne pour mon site.
Pour d'écrire rapidement il y a un attribut dans ma table qui indique statut 1 = message lu
statut 2 = message non lu.
statut 3 = message dans la corbeille.
Ensuite un attribut id_contact qui prend comme valeur le destinataire du message. Donc quand un user se connecte à sa boite y a un select*from messagerie where id_contact = '$session->id_contact'.
Le but étant que les visiteurs s'échangent des messages privés. Mais voilà moi l'admin, je veux pouvoir envoyer de temps en temps des messages à tous les inscrits.
J'ai donc pensé à un insert dans une boucle.
Alors ma question: en sachant qu'il peut y a avoir des milliers d'user est-ce que cet INSERT dans une boucle ne sera pas trop lourd ? Je fais mes armes en PHP et Mysql sur ce site et je n'ai aucune experience en matière de bouffage de ressource des requetes. Je précise qu'il y aura bien que moi qui pourra faire cette requete et qu'à la limite je pourrai la faire en heure creuse.
Qu'en pensez-vous ?
Message édité par Scarf3ss3 le 01-12-2004 à 19:13:55