IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

locker sa table


Sujet :

Administration MySQL

  1. #1
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    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 !!!

  2. #2
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 510
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 510
    Par défaut
    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.

  3. #3
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    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?

  4. #4
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 510
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 510
    Par défaut
    Non, ne change pas de moteur pour ça. Il me semble et je suis plus sur mais InnoDB gère le lock de table.

  5. #5
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ok, merci donc je passe en InnoDB de suite



    a plus!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réparation table/entête endommagée
    Par tbesrour dans le forum Paradox
    Réponses: 15
    Dernier message: 27/11/2007, 10h42
  2. [Conception] Locker des tables
    Par BernardT dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/06/2006, 16h39
  3. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55
  4. Newbie......compilateur et table de caractères
    Par Cyberf dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 21/08/2002, 14h29
  5. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo