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

 MySQL Discussion :

Jointure table MyISAM <-> table InnoDB


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de langevert
    Profil pro
    Inscrit en
    Août 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 92
    Par défaut Jointure table MyISAM <-> table InnoDB
    Bonjour,

    J'ai deux petites questions techniques :

    - Faire une jointure (inner join, left outer join, right outer join...) entre une table de type MyISAM et une table de type InnoDB, peut-il poser problème?

    - Dans une table InnoDB, ne pas faire de clés étrangères a-t-il une conséquence sur :
    ¤ La rapidité des requêtes
    ¤ La taille des tables

    Merci d'avance pour vos réponses

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Ça fait beaucoup de questions sans grand rapport entre elles.
    A vrai dire, je ne sache pas qu'il y ait le moindre problème de jointure entre une table MyISAM et une table InnoDB.
    Quant à la deuxième question la réponse va de soi, s'il n'y a pas d'intégrité référentielle à gérer, les INSERT, UPDATE et DELETE seront plus rapides, mais s'il faut gérer les mises à jour en cascade sur d'autres tables par d'autres requêtes je crois que le gain risque d'être illusoire.
    Quant à la taille des tables avec ou sans clefs étrangères, mis à part les déclarations de contraintes dans le schéma, je ne pense pas qu'il y ait de différence significative.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 054
    Par défaut
    Pour ajouter un complément à la seconde question, la définition de clefs étrangères nécessite d'indexer les colonnes, ce qui accélère les requêtes de sélection.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Citation Envoyé par langevert Voir le message
    - Dans une table InnoDB, ne pas faire de clés étrangères a-t-il une conséquence sur :
    ¤ La rapidité des requêtes
    ¤ La taille des tables
    Utiliser des contraintes de clefs étrangères tend plutôt à diminuer les performances car à chaque clef étrangère le serveur doit vérifier qu'elle est valide. La (faible) perte de performances est généralement considérée comme justifiée par la garantie de cohérence.

    Citation Envoyé par ced Voir le message
    Pour ajouter un complément à la seconde question, la définition de clefs étrangères nécessite d'indexer les colonnes, ce qui accélère les requêtes de sélection.
    ... mais ralentie les insertions/modifications et prend de la place. Cela dit s'il y a bien des colonnes que l'on souhaite indexer ce sont généralement celles là donc ce n'est pas trop gênant.

Discussions similaires

  1. [MySQL-5.1] conversion table myisam => innodb
    Par sirbaldur dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/06/2013, 21h06
  2. choix type de table: myisam ou innodb?
    Par rif15 dans le forum Administration
    Réponses: 2
    Dernier message: 02/11/2008, 13h34
  3. Réponses: 6
    Dernier message: 21/02/2008, 12h29
  4. Table MyISAM ou InnoDB
    Par gforce dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 04/01/2007, 12h37
  5. [MYSQL5] Pb de jointure de tables MyISAM
    Par frochard dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/01/2006, 23h49

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