Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2008, 15h20   #1
Débutant
 
Avatar de kaking
 
Inscription : mars 2008
Messages : 691
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2008
Messages : 691
Points : 188
Points : 188
Par défaut locker sa table

bonjour

voila, j essaye de locker ma table, et j ai une methode qui me dit comment faire :

"dans les cas où vous voulez faire de nombreuses INSERT et SELECT sur la même table, vous pouvez insérer les lignes dans une table temporaire, et ne modifier la table réelle que de temps en temps, à partir de la table temporaire.
"
et donc faire ceci

mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
mysql> INSERT INTO real_table SELECT * FROM insert_table;
mysql> TRUNCATE TABLE insert_table;
mysql> UNLOCK TABLES;

mais bon, voila, en gros noob de mysql, je pose tout de meme ma question :

quand faut il faire ca dans mon code? a chaque insert? au debut de chaque page? a chaque update? a la creation de la bdd?

help me siouplais !!!
__________________
« Pour garantir la sécurité dans la continuité et la stabilité, la République sera bientôt réorganisée et deviendra la Première Puissance Galactique Impériale ! Pour une société fondée sur l’ordre et la sécurité ! »
kaking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 15h43   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 986
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 986
Points : 3 568
Points : 3 568
Normalement tu n'as besoin de le faire dans ces conditions là surtout que cela ne sert à rien.

Mysql gère le lock de table de manière automatique. Cela dépend du moteur utilisé mais MyISAM c'est fait automatiquement, je ne suis pas sur mais je confonds avec le moteur InnoDB.
Par contre, je te déconseille de te lancer dans la gestion de lock de table ainsi. Il faut l'utiliser dans des cas très spécifiques qui peuvent critique.

Exemple quelqu'un fasse une gestion de caddie. La table peut être locké sur les commandes pour la disponibilité du produit.
Vous imaginez s'il restait qu'un produit et que deux personnes possèdent ce produit dans leurs panier. Au moment de la commande il faut pouvoir verrouiller la table des disponibilités le temps du traitement SQL. Si pendant le processe de validation l'autre utilisateur passe commande. Il n'aura pas accès à la table, il va attendre qu'elle soit dévérouillé. Par la suite la commande va être annulé parqu'au final le produit n'est plus disponible.

Bref, c'est utile dans ce genre de scénario très sensible.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 15h52   #3
Débutant
 
Avatar de kaking
 
Inscription : mars 2008
Messages : 691
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2008
Messages : 691
Points : 188
Points : 188
merci!

donc j ai cas passer de MyISAM -> InnoDB et c est tout?

c est pour un jeu en ligne.


donc si 50 utilisateurs en meme temps touchent a la table membre, il faut un lock non?
__________________
« Pour garantir la sécurité dans la continuité et la stabilité, la République sera bientôt réorganisée et deviendra la Première Puissance Galactique Impériale ! Pour une société fondée sur l’ordre et la sécurité ! »
kaking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 16h37   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 986
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 986
Points : 3 568
Points : 3 568
Non, ne change pas de moteur pour ça. Il me semble et je suis plus sur mais InnoDB gère le lock de table.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 16h41   #5
Débutant
 
Avatar de kaking
 
Inscription : mars 2008
Messages : 691
Détails du profil
Informations personnelles :
Âge : 23
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2008
Messages : 691
Points : 188
Points : 188
ok, merci donc je passe en InnoDB de suite



a plus!
__________________
« Pour garantir la sécurité dans la continuité et la stabilité, la République sera bientôt réorganisée et deviendra la Première Puissance Galactique Impériale ! Pour une société fondée sur l’ordre et la sécurité ! »
kaking est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h49.


 
 
 
 
Partenaires

Hébergement Web