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 :

clé primaire + index


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Par défaut clé primaire + index
    J'ai un léger soucis sous MYSQL 4.0.26, et j'ai chercher sur http://dev.mysql.com/doc/ mais je n'ai pas trouver de réponse à mes questions.

    Explication :

    - j'ai une table on va dire qu'elle s'appelle "TABLE_1" avec 3 champs

    - CHAMP_1
    - CHAMP_2
    - CHAMP_3

    - j'ai une clé primaire sur CHAMP_1 et CHAMP_2


    et

    ma question est : est-ce utile de mettre un INDEX sur CHAMP_1 et un autre INDEX sur CHAMP_2 ?

    sachant que si je met un INDEX sur CHAMP_2, mysql ne me dit rien mais si je met un INDEX sur CHAMP_1 MYSQL me dit que c pas bon ("il n'est pas nécessaire de mettre un INDEX sur une clé primaire"), donc je ne comprend plus comment est gérer un index sur une clé primaire multiples.

    Autres questions :
    - si j'ai 2 clés primaires, est ce que MYSQL cré 2 INDEX ou 1 seul INDEX ?

    - si je n'ai pas d'INDEX sur CHAMP_2 et que j'exécute une requête avec comme WHERE CHAMP_2 = "bidule machin truc" MYSQL utilise t'il l'INDEX de mes clés primaires.

    - est ce que l'ordre des clés primaires a une importance lorsqu'il y en a 2 ? si oui quel est la meilleure solution, la plus restrictive en 1ier ?

    Merci

  2. #2
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Citation Envoyé par yopman
    - si j'ai 2 clés primaires, est ce que MYSQL cré 2 INDEX ou 1 seul INDEX ?

    - si je n'ai pas d'INDEX sur CHAMP_2 et que j'exécute une requête avec comme WHERE CHAMP_2 = "bidule machin truc" MYSQL utilise t'il l'INDEX de mes clés primaires.

    - est ce que l'ordre des clés primaires a une importance lorsqu'il y en a 2 ? si oui quel est la meilleure solution, la plus restrictive en 1ier ?
    Il n'est pas possible d'avoir deux clés primaires. Si tu veux dire "une clé primaire composée de deux colonnes", il y a en effet deux INDEX créés mais le deuxième (qui concerne la 2ème colonne) ne peut pas être utilsé séparemment du premier.

    Un petit exemple pour mieux comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table t (id1 int, id2 int, primary key (id1, id2));
     
    select * from t where id1 = x ==> index utilisé
    select * from t where id2 = x ==> index NON utilisé
    select * from t where id1 = x and id2 = y ==> index utilisé
    Donc si tu as des requêtes du même genre que la deuxième, il vaut mieux rajouter un index sur id2.

    Tu peux lire ceci pour un autre exemple : http://dev.mysql.com/doc/refman/5.0/...n-indexes.html

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

Discussions similaires

  1. Probleme de non utilisation de clé primaire/index
    Par saluts92 dans le forum Requêtes
    Réponses: 4
    Dernier message: 22/11/2011, 18h10
  2. [SQL SERVER 2000] Clés primaires/index qui disparaissent
    Par voyageur dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/01/2008, 16h07
  3. [phpmyadmin] Remettre l'index d'un clé primaire à 0
    Par Death83 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2006, 01h01
  4. Réponses: 17
    Dernier message: 25/04/2005, 10h49
  5. vider table + index primaire
    Par jihed dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/07/2004, 17h43

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