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 :

[mysql 5] pb de perf étrange avec un petit index


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Par défaut [mysql 5] pb de perf étrange avec un petit index
    Bonjour,

    Attention, ce problème est trés étrange. Je ne suis pas expert en mysql, mais pas débutant non plus.

    Voilà.

    J'ai une table users avec à peu près 100,000 lignes.

    Il y a un champ state, qui est un int(4) et qui n'a que 3 valeurs différentes.
    Il y a un index sur ce champ.


    La requête suivante prend 1 seconde (ce qui est énorme!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id
    FROM users
    WHERE state > '0'
    ORDER BY id DESC 
    LIMIT 1

    J'ai un autre champ birthyear qui est un int(11) sans index.

    La requête suivante (à peu près la mêmem avec une novuelle condition) prend moins de 0.001 seconde (!)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id
    FROM users
    WHERE birthyear > '1980'
    ORDER BY id DESC 
    LIMIT 1

    Dois-je enlever l'index sur state ????

    Je ne comprends pas...

  2. #2
    Membre chevronné Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Par défaut
    slt...

    l´index sur state est uniquement sur la colonne, ou l´index comporte une autre colonne?

    Que montre l´explain de ta requete? l´index est vraiment utilize?

    Sans le limit, combien de lignes te retourne chaque requete?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Par défaut
    Pour la première requète (lente), elle retourne 78,908 lignes sans le limit.

    id 1
    select_type SIMPLE
    table users
    type range
    possible_keys state
    key state
    key_len 4
    ref NULL
    rows 79245
    Extra Using where; Using filesort

    Pour la deuxième requête (rapide), elle retourne 41,110 lignes sans le limit.

    id 1
    select_type SIMPLE
    table users
    type index
    possible_keys NULL
    key PRIMARY
    key_len 4
    ref NULL
    rows 84197
    Extra Using where

    Il y a effectivemnt des différences, mais je ne connais pas assez pour en déduire quoi que ce soit. Je vais me documenter. Déjà merci pour cette question.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Par défaut
    J'ai trouvé suite à la consultation de ce doc :
    http://dev.mysql.com/doc/refman/5.0/...imization.html


    La requête suivante s'exéctue en 0.03 seconde au lieu d'1 seconde!

    Juste en ayant rajouté FORCE INDEX ( PRIMARY )


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT id
    FROM users
    FORCE INDEX ( 
    PRIMARY ) 
    WHERE state < '0'
    ORDER BY id DESC 
    LIMIT 1
    Et bien merci pour tes questions

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

Discussions similaires

  1. [MySQL] conseils pour gérer des images avec mysql
    Par briiice dans le forum Administration
    Réponses: 9
    Dernier message: 04/01/2006, 09h52
  2. Résultat étrange avec les lumières.
    Par MaxPayne dans le forum OpenGL
    Réponses: 4
    Dernier message: 12/04/2005, 18h04
  3. passage de Mysql 3.23 a 4.1 avec php4
    Par epeichette dans le forum Installation
    Réponses: 4
    Dernier message: 09/04/2005, 21h33
  4. Réponses: 5
    Dernier message: 19/11/2004, 19h16
  5. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 15h41

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