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 :

BINARY, NOT IN, NOT EQUAL... et les Index !


Sujet :

Requêtes MySQL

Vue hybride

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

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Par défaut BINARY, NOT IN, NOT EQUAL... et les Index !
    Bonjour,

    J'ai quelques soucis avec MySQL pour optimiser certaines requêtes. Lorsqu'il y a présence dans le query par exemple de BINARY, !=, NOT IN, <, >, ... la requête n'utilise plus les index !

    Exemple concret : j'ai une table avec 3 colonne : 'id', 'nom' et 'categorie' et j'ai un index sur 'id' en PRIMARY et un index sur 'categorie'. Lorsque je lance la requête suivante par exemple :
    "SELECT nom FROM la_table WHERE categorie != 10 ORDER by id DESC" celle-ci n'utilisera pas d'index (c.f. EXPLAIN).

    Y a-t-il un moyen de palier ceci ou bien dois-je me contenter de ce que j'ai actuellement ?

    En vous remerciant par avance,

    Stéphane

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut,

    Lorsque les lignes à considérer représentent une large proportion des lignes de la table (SELECT nom FROM la_table WHERE categorie != 10 est un exemple flagrant), l'optimiseur choisit de ne pas utiliser d'index, préférant faire un full table scan qui sera plus efficace.

    Sometimes MySQL does not use an index, even if one is available. One circumstance under which this occurs is when the optimizer estimates that using the index would require MySQL to access a very large percentage of the rows in the table. (In this case, a table scan is likely to be much faster because it requires fewer seeks.)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 64
    Par défaut
    Ok, donc il n'y a pas de réel moyen de palier ce problème, MySQL gère les performances de par lui-même. Le seul moyen de palier à une éventuelle "lenteur" serait d'avoir des requêtes préparées.

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

Discussions similaires

  1. [DB2] Question sur les index et les vues
    Par ahoyeau dans le forum DB2
    Réponses: 1
    Dernier message: 14/03/2005, 08h30
  2. Paradox:Probleme avec les index
    Par byte dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/01/2005, 16h08
  3. Questions sur les indexations
    Par freud dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/05/2004, 11h38
  4. Les index sous Sybase
    Par Emdis dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 02/06/2003, 15h21

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