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 Laurent J (site web personnel, Mastodon) . Évalué à 1.
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 l . Évalué à 1.
[^] # Re: innodb
Posté par arkos (site web personnel) . Évalué à 3.
il faut de plus correctement parametrer le fichier my.ini pour optimiser l'utilisation des tables de type InnoDB.
[^] # Re: innodb
Posté par Christophe Delaigue . Évalué à 3.
[^] # Re: innodb
Posté par Lee Nux . Évalué à 1.
[^] # Re: innodb
Posté par arkos (site web personnel) . Évalué à 1.
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 l . Évalué à 1.
[^] # Re: innodb
Posté par Chadom (site web personnel) . Évalué à 2.
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 mister_jingle . Évalué à 1.
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 Pierrick Le Gall (site web personnel) . Évalué à 1.
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 :
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).
(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.