PDO/MYSQLI et connexion persistante ?
Bonjour,
Sauf erreur de ma part lorsque que l'on exécute un script PHP ce dernier est exécuté sur le serveur.
Mon problème est le suivant, afin de limité les création connexion à ma bdd mysql.
je souhaiterais exécuter une seule fois cette connexion, et ensuite faire mes insert update, select etc....
La raison en est simple, j'utilise un petit script simple pour faire des mises a jour d'une bdd, mais ces maj ce font les un après les autres., impossible pour moi de faire, par exemple
Code:
1 2 3 4 5 6 7
| insert matable(field1,field2,field3.....)
values(value1,value2,value3....),
values(value11,value2,value3....),
values(value111,value2,value3....),
.......,
values(value1,value2,value3....);
vous avez compris l'idée |
l'accès à ma base de données (connexion est rapide), la mise a jour des tables encore plus (~0.01 sec).
Cependant je souhaiterais être encore plus rapide en évitant à chaque fois de créer la connexion à la base de données( objectif du programme : plus de 500 connexions en simultanées par 1/2 heure voir plus (je préfère exagérer pour ne pas être surpris ).
En effet à chaque fois que je fais un update, insert, delete...
je fais les choses suivantes:
1 création de mon objet mysqli (autocommit= yes)
2 connexion à ma base de données
3 lecture/update/insert/delete
4 fermeture de la connexion
5 destruction objet mysqli
en résumé,
- est il possible de sauvegarder dans une session (j'ai essayé mais pas réussi) l'objet mysqli,pour ensuite qu'il soit utiliser lors des prochaines mise a jour
- Si oui pouvez vous m'aiguiller
- si non que me conseillez vous de faire.
je prècise que la base de données à été optimisé,(index, clé, choix des index) et par conséquent letemps à gagné est sur la connexion
je vous remercie de votre aide et conseils
cordialement
PDO connexion persistante
Je viens de faire un petit test depuis mon localhost, et pour le moment la connexion et les select semble marcher correctement .
cependant pouvez-vous me confirmer certains points:
En effet j'ai lu le lien suivant :connexion persistante
et il semble y avoir quelques restrictions, si vous avez une expérience dans ce domaine (PDO) pouvez-vous me donner un retour.
si j'ai bien tout compris la connexion persistante fonctionne de la sorte:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?php
$VALEUR_hote='localhost';
$VALEUR_port='port';
$VALEUR_nom_bd='nom_de_la_BDD';
$VALEUR_user='root';
$VALEUR_mot_de_passe='mot_de_passe';
$connexion = new PDO('mysql:host='.$VALEUR_hote.';port='.$VALEUR_port.';dbname='.$VALEUR_nom_bd, $VALEUR_user, $VALEUR_mot_de_passe);
$connexion->exec("INSERT INTO membres(champ_login,champ_mdp) VALUES('login','mot_de_passe')");
?> |
En suite à chaque fois que je relance ce script depuis une machine, PHP (ou qui sais-je encore, vérifie si une instance de la connexion sur la bdd existe si tel est le cas il ne la recréer pas et utilise ladite connexion si elle n'existe pas alors il la créer.
en revanche je dois vérifier le nombre limite de connexion, les verrous, mais là chaque problème en son temps je verrais plus tard
Pour être précis sur le sujet,voila réellement ce que je compte réaliser.
via une machine (pc/pda/smartphone/tablette etc..) j'accèdes à une base de données, ces accès peuvent être nombreux et par fois fait depuis plusieurs machines (pc/pda/smartphone/tablette etc..).
Comme il peut y à voir plusieurs accès depuis une même machine entre 300 insert ou update voir plus) et cela dans un cours laps de temps (~ 10 a 15 minutes) , je trouve que le temps de réponse des script php (existant dans mon produit) sont assez long (temps mesuré ~ 0.12 sec par insert) c'est cours mais pour mon produit et le domaine fonctionnel c'est trop long et surtout il arrive de temps en temps que la connexion prenne vraiment bcp de temps
J'attire votre attention sur le fait que l'essentiel du temps est sur la connexion à la base de données, et c'est pour cette raison que je souhaite faire une seule connexion (tout au début du traitement quit à la relancer toutes les X minutes) et ensuite rè-utiliser ladite connexion créés au début pour faire les select/insert/update.....
En résumé aujourd'hui j'ai :
Citation:
0-Ouverture de l'outil
1-traitement fonctionnel
2 création de mon objet mysqli (autocommit= yes)
3 connexion à ma base de données (avec un seul nom utilisateur pour toutes les connexions)
4 lecture/update/insert/delete
5 fermeture de la connexion
6 destruction objet mysqli
7-fin traitement fonctionnel
et je recommence le traitement ci-dessus (de 1 à 7) jusqu'à la fin de la tache.
je voudrais à la fin que le traitement soit le suivant :
Citation:
0-Ouverture de l'outil
1 connexion à ma base de données (avec un seul nom utilisateur pour toutes les connexions - PDO)
2-traitement fonctionnel
3 connexion à ma base de données
4 lecture/update/insert/delete
5-fin traitement fonctionnel
et je recommence le traitement ci-dessus (de 2 à 5) jusqu'à la fin de la tache.