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

SQL Procédural MySQL Discussion :

Performances d'un update


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 127
    Par défaut Performances d'un update
    Salut à tous,

    Je me demande comment implémenter une fonctionnalité afin qu'elle soit la plus performante possible.

    J'ai un certain nombre de blogs (il peut être assez élevé, 1000+) et je dois implémenter un compteur de visites pour ces blogs.

    Quelle est la meilleure solution?

    1) J'insère un tuple contenant l'id du blog, la date et l'adresse ip du visiteur à chaque fois que quelqu'un visite un blog. Une fois par jour je vide cette table et j'incrémente le champs nb_visits du blog correspondant.

    2) A chaque fois que quelqu'un visite le blog, j'incrémente directement le compteur.

    Ce qui m'ennuie avec la solution 2, c'est que si mes souvenirs sont bons, la table blog va être lockée lors de la mise à jour du champs nb_visits. A moins que le lock ne soit placé qu'au niveau du tuple? J'ai donc peur que étant donné le nombre élevé de blogs et de visites, le temps d'attente pour obtenir le lock soit long.

    La solution 1 me semble plus performante, mais ce qui m'ennuie avec celle-là c'est que pour afficher le compteur de visites il va falloir faire un count sur le blog_id dans une table qui va contenir des centaines de milliers de tuples.

    Voilà, j'espère être clair.

    Merci d'avance pour vos réponses!

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    Si la seule chose qui t'intéresse est d'incrémenter un compteur, sans garder d'historique des visites, la solution 2 s'impose.

    Ensuite, tout dépend du moteur de stockage. InnoDB permet de faire le lock au niveau du tuple, ça devrait régler le problème.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 127
    Par défaut
    Ok, merci pour l'info!

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

Discussions similaires

  1. Performance MERGE vs UPDATE
    Par francois86 dans le forum Développement
    Réponses: 2
    Dernier message: 23/12/2011, 11h46
  2. Réponses: 16
    Dernier message: 29/06/2011, 20h39
  3. Optimiser les performances sur un Update.
    Par Delphi-ne dans le forum DB2
    Réponses: 3
    Dernier message: 10/01/2011, 11h22
  4. Performance sur des Update
    Par Julien Bodin dans le forum Requêtes
    Réponses: 0
    Dernier message: 03/11/2009, 17h27
  5. Performance d'un update sur une colonne
    Par melendil dans le forum DB2
    Réponses: 2
    Dernier message: 31/03/2009, 14h41

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