Page 1 sur 1
Choix de conception : MyISAM ou InnoDB ?
Posté : 16 août 2005, 10:45
par Cyrano
Bonjour tout le monde.
Une fois n'est pas coutume, je pose une question. Je suis face à un choix. Pour une base de données MySQL de site de commerce en ligne, je m'interroge sur l'opportunité de choisir des tables de type MyISAM ou InnoDB. Cette interrogation concerne surtout les performances bien entendu. Les limitations des tables MyISAM concernant l'intégrité référentielles ou le support des clés étrangères étant un problème réglé : pas de support. Les tables MyISAM sont optimisées pour une lecture rapide des données. Mais justement, un site de commerce en ligne est appelé à faire des d'écritures dans une proportion plus importante que pour un site d'informations.
Je suis également bien conscient que l'intégrité référentielle ne facilitera pas nécessairement la programmation PHP. Mais si je veux créer un système propre et durable avec des tables MyISAM, il me faudra gérer en PHP une pseudo-intégrité référentielle.
Votre avis

Posté : 16 août 2005, 11:58
par Cobaye
ben pour la gestion des produits etc... je prendrais MyISAM pour ce qui concerne les transaction, panier, commande etc j'utiliserai plutot InnoDB. Mais bon c'est mon humble avis.
Posté : 16 août 2005, 12:16
par Cyrano
Et donc avoir une table mixte contenant deux type de tables... pourquoi pas

Re: Choix de conception : MyISAM ou InnoDB ?
Posté : 16 août 2005, 22:00
par Invité
Cette interrogation concerne surtout les performances bien entendu
...
Votre avis Question
si par performance tu entends vitesse, la vitesse est surtout visible à l'échelle du processeur et certainement pas à l'échelle humaine(si tu dois faire des centaines de requêtes sur un script ou que tu disposes d'un vieux p1 alors on peut discuter).
mon avis:
myisam, innodb, postgres, oracle...peu importe pour un humain ça se vaut.
si par performance tu entends bonne intégrité.
mon avis:
innodb(qui supporte aussi les transactions).
Mais si je veux créer un système propre et durable avec des tables MyISAM, il me faudra gérer en PHP une pseudo-intégrité référentielle
dans ce cas mieux vaut laisser le moteur faire sa cuisine(une recette à base de c/c++ ce qui ne gache rien).
mon avis:
innodb
Posté : 16 août 2005, 22:08
par Xenon_54
Bonjour,
Et donc avoir une table mixte contenant deux type de tables... pourquoi pas

Jamais entendu parler.
Je conseillerais InnoDB pour le support des transactions.
Posté : 16 août 2005, 22:21
par Cyrano
Je remercie chacun pour vos avis. L'idée de la base mixte ne me déplait pas, je dois l'avouer. Techniquement, je ne crois pas que ce soit un problème. InnoDB semble avoir beaucoup d'avantages, L'inconvénient est au niveau de la programmation, parce que travailler avec l'intégrité référentielle est très contraignant et j'ai tout à fait horreur de ça

Mais ça oblige à une rigueur dans le codage qui n'est certes pas une mauvaise chose.
Quoiqu'il en soit, MySQL permet la transformation au besoin de tables InnoDB en tables MyISAM, si j'ai trop de problèmes avec l'intégrité automatique, je ferai la transformation et je gèrerai l'intégrité par programmation.
Posté : 16 août 2005, 22:43
par Invité
L'inconvénient est au niveau de la programmation, parce que travailler avec l'intégrité référentielle est très contraignant et j'ai tout à fait horreur de ça
je suis curieux de savoir ce qui te pose souci(ou ce que tu entends par intégrité référentielle, parce que pour moi ça se limite aux contraintes de clefs étrangères) et pourquoi tu zap les transactions?
Posté : 16 août 2005, 23:31
par Cyrano
Je ne suis pas familier avec l'intégrité et ça me rappelle de fort mauvais souvenirs de MS-Access en particulier. J'ai toujours géré l'intégrité manuellement en PHP pour des tables MyISAM et j'ai jamais eu de soucis de ce coté là.
Posté : 17 août 2005, 00:23
par Invité
après tout c'est toi qui voit.
<ceci n'est pas un troll>
t'es sûr qu'access c'est une vrai base?
en cherchant sur le net je suis tombé sur
ça.
c'est pas que je sois contre de tout faire à la main, mais là je trouve le concept un peu limite.
</ceci n'est pas un troll>
Posté : 17 août 2005, 08:47
par Cyrano
MS-Access est un système très utilisé par le petit artisan local qui a sa suite office pour sa gestion. Ce n'est pas conçu pour des accès concurents sans se vautrer lamentablement, mais ça existe et c'est encore très utilisé. J'ai appris à un moment donné à l'utiliser, même si ça ne me l'a pas fait apprécier vraiment. J'ai même vu en librairie un livre prétendre vouloir montrer comment mettre en ligne sa base accès
Pour le lien, j'avoue que j'ai vu la valisette, mais pas Access, un détail a dû m'échapper

Posté : 17 août 2005, 09:34
par Cobaye
Vous seriez etonné de vori ce qu'on peut faire avec access mais bon des qu'il s'agit de web faut l'oublié !
Posté : 17 août 2005, 10:19
par Cyrano
Ha mais absolument, Access est un outil extrêmement puissant: mais il a deux défauts majeurs : il n'est pas du tout fait pour le web, ce qui est un moindre mal puisque ça n'a jamais été sa destination première, et il tolère très mal les accès concurrents, ce qui est beaucoup plus ennuyeux dans une entreprise où plusieurs personnes utilisent la même base. Pour la secrétaire-comptable d'une pme dans sont petit bureau qui gère ses commandes , ses factures, les listes de clients ou les devis, très bien, parfait même, tant qu'elle est la seule à l'utiliser. Si l'entreprise prend de l'expansion et que les bureaux doivent avoir un ajout de personnel administratif pour se partager le travail sur ces mêmes éléments, si une migration vers un système plus adapté n'est pas fait dans la foulée, les galères apparraissent assez rapidement.