Journal innodb

Posté par  .
Étiquettes : aucune
0
18
déc.
2003
salut tout le monde !!

Quelqu'un sait ce que Innodb est exactement ? Je suis allé faire un tour sur le site mais j'ai pas compris le fond de la chose (à part que ca t'améliore la BDD).

C'est un "plugin" à Mysql ? Comment ca se configure ? ....

Si qqn a testé, ca serait cool de faire partager son expérience.
  • # Re: innodb

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    innodb, c'est en gros un format de stockage des données.
    Par défaut, mysql utilise MyIsam, mais tu peux specifier innodb lors de la création des tables :
    CREATE TABLE.. {....} type=innodb;

    Pour l'activer : faut que ce soit compiler dans le démon je crois, et/ou il y a une option à indiquer lors du lancement du démon..
    Dans la version windows, elle est fourni avec plusieurs types de démon. Il suffit de lancer le bon.
  • # Re: innodb

    Posté par  . Évalué à 1.

    Alors je suis loin d'être un expert, mais a ma connaissance, InnoDB etait un SGBD aspiré par MySQL, il existe des patchs a MySQL depuis bien longtemps, car l'utilisation de InnoDB plutot que MyISAM dans la déclaration des tables apporte de nombreuses fonctionnalitées suplémentaires a MySQL ... et nottement le lock des lignes et plus des tables ( celui qui me parait le plus interressant ... c'est mon avis ).
    • [^] # Re: innodb

      Posté par  (site web personnel) . Évalué à 3.

      transaction et clé étrangère

      il faut de plus correctement parametrer le fichier my.ini pour optimiser l'utilisation des tables de type InnoDB.
      • [^] # Re: innodb

        Posté par  . Évalué à 3.

        tu peux aussi sauvegarder à chaud tes fichiers mysql pour par exemple sauvegarder la base
        • [^] # Re: innodb

          Posté par  . Évalué à 1.

          Puisqu'on parle de sauvegarde de bases de données. Avec MySQL et des tables MyISAM, tu es obligé de stopper le serveur de DB pour sauvegarder tes données ?
          • [^] # Re: innodb

            Posté par  (site web personnel) . Évalué à 1.

            je pense pas avec un mysqldump.

            Avec les sauvegardes, ou tu fais un dump des bases (pas besoin d'arret) ou tu fais une copie des fichiers MyIsam (mais alors tu dois stopper MySQL)

            et avec InnoDB la logique des tables fichiers n'est plus de mise, il faut utiliser le dump.
            • [^] # Re: innodb

              Posté par  . Évalué à 1.

              Euh perso je fais mes dumps a chaud en spécifiant à mysqldump de locker les tables lors du dump, bon c'est la nuit j'ai pas de problèmes avec cette méthodes ... mais avec InnoDB c'est quand même mieux à ce niveau
      • [^] # Re: innodb

        Posté par  (site web personnel) . Évalué à 2.

        > transaction et clé étrangère

        Les clés etrangères sont déjà gérées en myISAM. Par contre elles n'étaient pas controlées lors de modifications... Innodb apporte justement la vérification des contraintes sur les clés étrangères (foreign key constraints) ce qui garantie de garder des données cohérentes. C'est une fonction de base dans toute BD relationnelle. Dans ce sens, mySql utilisé avec des tables myISAM n'est pas vraiment un SGBDR.

        Pour la liste des features Innodb :
        http://www.innodb.com/features.php(...)
        • [^] # Re: innodb

          Posté par  . Évalué à 1.

          Je ne suis pas très spécialiste de la base de donnée. Que sont les clés étrangères et à quoi servent elles ?

          J'ai cru comprendre qu'elles servaient quand on voulait faire des DELETE cascadés ?
          Mais je ne suis pas trop sur...

          Sinon j'aurais une question à propos de inodb et des jointures : est ce qu'il le permet ?
          J'ai par exemple une table user et une table groupe. Un user peut appartenir à plusieurs groupes. Pour l'instant, pr spécifier ca, j'ai du créer une nouvelle table "user_group" pour faire la jointure. Est ce que avec Innodb on peut se passer de creer cette nouvelle table ?

          De plus, si le user ou le group est deleté, est ce que avec innodb on peut effacer les entrées superflues dans la table "user_group" automatiquement (cascade) ?
          • [^] # Re: innodb

            Posté par  (site web personnel) . Évalué à 1.

            Je ne suis pas très spécialiste de la base de donnée. Que sont les clés étrangères et à quoi servent elles ?


            Ce sont des "propriétés" que l'on applique à un ou plusieurs champs d'une table pour la lier à une autre table. Un exemple valant mieux qu'un long discours :


            • table article contenant un champ "category_id"

            • table category contenant un champ "id"



            la table article doit avoir une clé étrangère qui fait pointer son champ category_id vers category.id.

            A quoi ça sert ? A assurer l'intégrité de ta base. A aucune moment elle ne doit permettre d'insérer un article qui n'a pas de catégorie. De même si tu supprimes une catégorie, il ne doit plus y avoir d'orphelins (ie des articles sans catégorie).

            Sinon j'aurais une question à propos de inodb et des jointures : est ce qu'il le permet ?

            (je n'utilise pas InnoDB) A mon avis, ce n'est pas une question de format de fichier stockage, mais de possibilité du SGBD (MySQL en l'occurence). Et MySQL gère parfaitement les jointures (encore heureux).

            Avoir une table spéciale pour les jointures ne va être conceptuellement utile (je parle pas en terme d'optimisations etc.) que lorsqu'un article pourra appartenir à plusieurs catégories (pour reprendre l'exemple précédent). Plutôt que d'avoir article.category_id, tu aura une table article_category avec 2 champs : article_id et category_id (avec doublons autorisés pour chaque champ, mais pas pour un couple donnée).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.