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

Langage PHP Discussion :

Intérêt Engine MyIsam / InnoDB ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut Intérêt Engine MyIsam / InnoDB ?
    Bonjour,

    Je reste actuellement perplexe sur les notions "Engine=MyIsam" (ou autres). Je cherche actuellement à faire un "espace membre" et sur différents tuto, je vois que ces notions sont souvent utilisés mais même si je compris qu'il s'agissait de "moteurs de stockage", je ne vois pas l'intérêt réel de la chose, pouvez m'éclairé à ce sujet ?

    Pour réalisé ce genre d'espace avons-nous obligatoirement ou nécessairement besoin de les mentionnés ? Et si on déclare une table comment étant de type MyIsam (ou autres moteurs de stockage) doit-on faire de même pour le reste de la base de données ?

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Pour faire simple

    Myisam :
    + est plus rapide en lecture de données : on le privilégie quand on lit beaucoup plus que l'on écrit dans la base
    + Supporte les index fulltext (utile pour faire un moteur de recherche)
    + Facilite la conception des bases car on ne s'occupe pas des clé étrangères (non supportées)

    - Pas de clé étrangère (souvent problématique) , donc pas d'update/delete en cascade
    - Pas de transaction
    - N'est plus le moteur par défaut de mysql => on peut imaginer qu'il va sans doute peu à peu disparaitre

    InnoDB :
    + Supporte les clé étrangères
    + Support les transaction
    + meilleure granularité sur les lock => meilleur gestion des accès concurrent
    + Index FullText depuis Mysql 5.6
    + Moteur par défaut

    - Pas de fulltext avant 5.6
    - Plus "lent" sur de la lecture pure

    Concrètement aujourd'hui y'a pas vraiment de raison valable d'utiliser myisam.

    Plus d'infos : http://dev.mysql.com/doc/refman/5.5/...e-engines.html
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut
    Merci bien grunk !

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 383
    Points : 10 411
    Points
    10 411
    Par défaut
    Salut,

    grunk t'a donné (sans doute involontairement) un lien vers la version mysql 5.1 qui donne encore myisam comme choix par défaut. Cela change avec la version 5.5. Comme "InnoDB" a fait de gros progrès et offre des fonctionnalités supplémentaires, c'est devenu le choix naturel.

    Le seul problème que je trouve avec ces tables "InnoDB" c'est qu'elles nécessitent des fichiers que l'on ne peut pas récupérer avec php pour faire une sauvegarde à chaud (ou du moins je sais pas faire). C'est bien pratique pour récupérer la bdd en un clic depuis un espace administrateur php standard sans passer par phpMyadmin. Même si ce n'est pas une solution envisageable pour des gros volumes (ni une solution professionnelle car peu performante) j'aime bien cette fonctionnalité très pratique sur les petits/moyens sites qui permet de se dire qu'on pourra tout remettre en ligne sans perte et sans dépendre de l'extérieur. Au passage si quelqu'un a une piste pour sauvegarder "InnoDB" avec php...

    A part ça il y a aussi un article intéressant mais plus global sur les sgbd ici (en français).

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut
    Merci pour ton apport ABCIWEB

    Mais est-ce que le fait choisir tel ou tel moteur peut interférer dans notre manière de codé en Php (point de vue syntaxe en tout cas) ?
    J'ai aussi vu qu'on pouvait changé un type de table (autrement dit moteur) en quelque sorte "à sa guise", seulement est-ce que ce genre de modification ne peut pas être à l'origine de problèmes plus ou moins important ?

    Exemple : Aujourd'hui j'ai une table "membres" de type MyIsam dans ma bdd, est-ce que si je souhaite la remettre sous InnoDB manuellement je risque d'avoir de mauvaises surprises ?

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 383
    Points : 10 411
    Points
    10 411
    Par défaut
    Citation Envoyé par Ojiuiookojbezib Voir le message
    Mais est-ce que le fait choisir tel ou tel moteur peut interférer dans notre manière de codé en Php (point de vue syntaxe en tout cas) ?
    Le plus simple est d'utiliser pdo pour un maximum de souplesse avec les différents sgbd. Mais y a bien quelques fonctions comme rowCount qui ne sont pas compatibles avec toutes les bases et qu'il vaudrait mieux éviter pour une application portable.
    Aussi InnoDB n'est pas optimisé pour les requêtes count(*) sans clause where et a d'autres limitations qui répondent à ta question suivante.
    Après si tu as déjà tout développé avec myIsam t'as pas de raison particulière de passer vers innoDB étant donné que tu as déjà fais manuellement l'équivalent des update et delete en cascade. Et par ailleurs même si sur le papier les tables innoDB sont plus robustes que les tables myIsam, on sait par expérience que les tables myIsam sont quand même très robustes puisque c'était le moteur par défaut il y a pas si longtemps. Elles sont justes moins robustes dans certaines conditions exceptionnelles.

  7. #7
    Membre régulier
    Homme Profil pro
    Responsable ingénierie des logiciels - Recherche alternance
    Inscrit en
    Novembre 2013
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable ingénierie des logiciels - Recherche alternance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 68
    Points : 92
    Points
    92
    Par défaut
    Compris !
    Encore merci pour ton aide

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

Discussions similaires

  1. [phpMyAdmin] passer de MyISAM à innoDB
    Par alvanoto dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/08/2010, 21h20
  2. Changement d'engine MyISAM -> InnoDB
    Par vinzzzz dans le forum MySQL
    Réponses: 1
    Dernier message: 04/06/2009, 12h02
  3. MyISAM, InnoDB et les caractères spéciaux
    Par pounaid dans le forum Administration
    Réponses: 2
    Dernier message: 25/06/2008, 10h20
  4. [dump SQL] syntax error near 'ENGINE=MyISAM
    Par pierrot10 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 27/09/2006, 12h33
  5. MyISAM -> InnoDB (Problème Stored Proc)
    Par Erakis dans le forum Outils
    Réponses: 8
    Dernier message: 12/12/2005, 20h02

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