connexion persistante = connexion partagée ? - SQL/NoSQL - Programmation
Marsh Posté le 22-02-2012 à 17:55:50
Heu en principe, mais je m'avance peut-être car je ne suis pas expert MySQL, une connexion persistance ça veut dire que tu gardes la même connexion même quand ton processus (PHP je pense dans ton cas je pense) est coupé.
I.e. le client MySQL se charge de garder la connexion active et opérationnelle.
Par contre, jamais de la vie (et même dans des mécanismes de pool de connexion côté serveur dans d'autres SGBD) tu partages ta session avec quelqu'un d'autre. Ca va à l'encontre du modèle relationnel car tu ne peux alors plus assuré la cohérence des données à chacun (quid des commit/rollback ).
Après la doc. de MySQL ne laisse pas paraitre un quelconque doute a propos de la pertinence de last_insert_id() : http://dev.mysql.com/doc/refman/5. [...] ue-id.html
Ou alors le formateur s'est mal exprimé.
Marsh Posté le 22-02-2012 à 18:22:26
Non non, je lui ai posé la question avec argumentations à la clé mais il n'en démordait pas. Mais je me méfiais quand même de sa réponse donc voilà..
Vous confirmez mes soupçons, merci pour votre réponse.
Marsh Posté le 22-02-2012 à 19:12:08
+1 avec MEI
La connexion est persistante dans le sens où un script qui s'exécute récupèrera la connexion utilisée par un précédent. Mais celui-ci est terminé.
A chaque instant, il n'y a qu'un seul script qui utilise la connexion, donc pas de souci avec le last_insert_id
Marsh Posté le 24-02-2012 à 08:47:43
Re!
On vient de m'envoyer un lien qui explique le contraire me semble t-il : http://www.php.net/manual/fr/funct [...] onnect.php
Citation : mysql_pconnect() se comporte exactement comme mysql_connect(), mais [...] à la différence majeure : |
Donc tous les utilisateurs utilisant les mêmes identifiants partagent la même connexion non?
Marsh Posté le 24-02-2012 à 09:10:36
SV_LVH a écrit : Re!
|
Oui mais tu es point de vue PHP, i.e. forcement dans ton script PHP propre.
Point de vue MySQL, elle aura une connexion par IP/user/password (voir plusieurs suivant comment c'est implémenté en détail... sous Oracle c'est une connexion par thread Apache).
Marsh Posté le 22-02-2012 à 09:40:40
Bonjour tout le monde,
Je viens de découvrir les connexions persistantes pendant une formation MySQL. Le formateur nous a expliqué que les connexions persistantes, une fois ouvertes, sont partagées par tous les utilisateurs.
Il nous expliquait donc que dans le cas d'un last_insert_id on ne pouvait être sûr que l'id récupéré est bien le notre. Il pourrait très bien être un id insérer par un collègue vu que l'on partage la connexion.
Comme ce formateur c'est déjà planté quelques fois pendant cette formation j'aurais aimé une confirmation sur le sujet.
Thx