La deuxième connexion patientera que la première est fini.
La deuxième connexion patientera que la première est fini.
Mais si t'as un script PHP qui prend plus de 5 secondes en requêtes MySQL, laisse tomber le PHP. :D
Je vais prendre un exemple de forum puisque c'est ça qui a l'air de t'interesser.
Si tu as une requete qui bouffe 75% de ton CPU (par ce qu'un user cherche le mot "le" sur un forum ou il y a 2 millions de messages ce qui est au passage dangereux de laisser faire une recherche sur - de 3 caracteres :p ) et que tu as en gros 100 utilisateurs simultannés.
Ce qui va se passer, il va y avoir une queue monstre de requetes, elles vont etres traitées les unes a la suite des autres, le processus qui bouffe énormement de CPU va se faire scheduler mais sera un poil + prioritaire , et globalement tu va avoir ton forum qui va ramer totalement, et la charge de ton serveur exploser.
Apres a toi de choisir un compromis, performance/nb user.
T'inquiete pas de ce coté la c'est le SGBD qui gere la gestion des concurrences. il n'y aura pas d'incoherence du type appli a 0 et base a 1
le serveur MYSQL est indépendant du serveur web qui fait tourner PHP, je vois pas comment le serveur MYSQL peut de lui même se débrouiller pour garder la syncro entre ses valeurs et celles stocké dans les variables PHP, pour moi (corrigez moi si je me trompe) la base de donnée se fiche complètement de qui fait quoi avec ses valeurs, elle répond juste aux SELECT et UPDATE et c'est tout, à moi de faire gaffe de pas avoir des SELECT avant mon UPDATE pour "syncrhonisé" les différents thread PHP. La base elel a aucune idée que je vais faire un UPDATE apres mon SELECT et si ele recoit un autre SELECT ben elle va lui répondre sans savoir ce qu'on va en faire derrier.
MySQL ne supporte pas d'environnement transactionnel, donc il faut absolument verrouiller une table, pour s'assurer qu'aucun autre thread n'intervient entre une commande SELECT et une commande UPDATE . L'exemple ci-dessous montre comment exécuter une transaction :
mysql> LOCK TABLES trans READ, customer WRITE;
mysql> select sum(value) from trans where customer_id= some_id;
mysql> update customer set total_value=sum_from_previous_statement
where customer_id=some_id;
mysql> UNLOCK TABLES;
Sujets Similaires: Découvrez aussi :
AchetezFacile (Comparateur de prix) -
JeuxVideo.fr -
Neteco -
Ozap -
Mobinaute -
JeuxVideo.TV (Emissions TV)
Echanges de Liens :
Allociné (Cinéma, VOD) -
Cityvox (Paris) -
Franchise Jeux Vidéo -
Boursier.com (Bourse Quotidien) -
Infobebes (Grossesse)
Culture Jeux (Encyclopédie) -
Webdistrib (Matériel Informatique) -
Locafilm (Location DVD) -
Pixmania (GPS Garmin) -
auFeminin (beauté, mode)
Sur cette page : Nombre de connection MYSQL (transaction) [résolu] : Bonjour
Lorsque plusieur.... Mots Clefs : informatique, PC, hardware, matériel, jeux vidéo, multimédia, logiciel, téléchar....
