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

Requêtes MySQL Discussion :

Palier les «Slow queries» ?


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut Palier les «Slow queries» ?
    Bonjours,

    voici ma requête SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM `message` WHERE `id`='5' AND `statut`='1'
    sous PHP, lorsque je fait un mysql_stat(); voici ce que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Uptime: 1045580  Threads: 1  Questions: 25507  Slow queries: 1  Opens: 240  Flush tables: 1  Open tables: 27  Queries per second avg: 0.024
    Slow queries: 1 ?
    c'est normale? comment je peux faire pour que ma "Slow querie" devienne un "Fast querie"?

    Voici, en cas de besoin, la structure de ma base SQL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE `messages` (
      `id` bigint(20) unsigned NOT NULL auto_increment,
      `qui` bigint(20) unsigned NOT NULL,
      `date` datetime NOT NULL,
      `statut` int(10) unsigned NOT NULL,
      `miseajours` datetime NOT NULL,
      `titre` tinytext NOT NULL,
      `texte` longtext NOT NULL,
      `modifications` datetime NOT NULL,
      `raison` text NOT NULL,
      `commentaires` int(10) unsigned NOT NULL,
      `reponses` int(10) unsigned NOT NULL,
      `note` int(10) unsigned NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM;

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    je ne sais pas trop comment fonctionne ce truc PHP, mais pour améliorer ta requête tu peux :

    - indexer statut
    - spécifier la liste des colonnes à ressortir plutôt que *
    - écrire 5 et 1 plutôt que '5' et '1'
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    malgré tout, je ne parviens pas à ne pas avoir de Slow queries

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id,qui,date,statut,titre FROM `message` WHERE `id`=5 AND `statut`=1
    comment je pourrais indexé status?
    car mon problème viens d'ici, étant donné que lorsque je ne fait aucune requête, et que je regarde avec mysql_status().
    Par contre, si je fais un SHOW STATUS, je n'ai aucune Slow queries...

    Probablement un problème avec la fonction...

  4. #4
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Citation Envoyé par Antoun
    - indexer statut
    Je proposerais bien statut et id, dans cet ordre... mais comme on utilise déjà la clef primaire de la table je ne vois pas comment cette requête pourrait être lente.

    Si c'est possible il faudrait consulter/activer le log des requêtes lentes pour savoir laquelle pose problème, car c'est certainement un autre la source.
    Un truc genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log-slow-queries="C:\Dev\appli\mysql5\slow.log"
    dans le fichier de configuration.

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

Discussions similaires

  1. [CSS] Pour ou contre les medias queries en CSS (vs Javascript) ?
    Par Sergejack dans le forum Contribuez
    Réponses: 1
    Dernier message: 14/11/2014, 13h35
  2. Réponses: 4
    Dernier message: 25/09/2013, 17h35
  3. Peut on empecher les requetes Query Close ?
    Par bigbernie dans le forum Windows XP
    Réponses: 0
    Dernier message: 13/01/2009, 10h21
  4. Plantage et slow-query.log
    Par bigsister dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/08/2006, 17h03
  5. palier les requetes imbriquées
    Par dor_boucle dans le forum Requêtes
    Réponses: 13
    Dernier message: 19/10/2005, 16h26

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