|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
![]() ![]() |
Bonjour,
En regardant d'un peu plus près la BDD de joomla, je me suis demandé comment était le schéma relationnel. Et la surprise, aucune table (enfin pour celle que j'ai consulté donc une paire ^^) ne sont relié entre elles, mais il semble y avoir une relation par l'intermédiaire d'une table, je me dis mais pourquoi ? Et le moteur est toujours en MyISAM au lieu de innoDB plus en accord avec les relations En cherchant un peu sur le net, certaines personnes ont des soucis en innodb car non installé ou non pris en charge par l'hébergeur J'en viens à ma question, faut-il s'embêtait à mettre en innodb avec les relations existantes ou faut-il rester en MyISAM et faire comme joomla ? Merci d'avance
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
MyIsam est plus rapide et permet les recherches fulltext.
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Si tu en as la possibilité c'est je pense dommage de se passer de table innodb.
En revanche si ton application à vocation à être distribuée à grande echelle sur des systèmes hétéroclites , il est sans doute plus judicieux de rester en mysam et d'émuler par exemple les CASCADE en php. Note que pour la recherche fulltext avec innodb c'est assez facilement émulable avec une table supplémentaire et des triggers. |
|
10
|
|
|
#4 |
|
Membre éclairé
![]() Jérémy Étudiant Inscription : octobre 2009 Messages : 236 ![]() |
Si je ne m'abuse, tu devra par contre gérer les suppressions/modifications de chaque table, le myIsam ne gérant pas les relations entre tables (cascade, setnull, ...).
|
|
|
00
|
|
|
#5 |
![]() ![]() |
Ben oui c'est ce que je me disais, alors qu'avec relation cela mettrait à jour les tables en cascades et devrait etre plus rapide logiquement non ?
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : janvier 2006 Messages : 951 ![]() |
déjà je suis pas sur que joomla aimera si tu lui changes son moteur.
ensuite est ce qu'il faut, en règle générale, formaliser les contraintes d'intégrités: oui oui oui oui oui oui oui sans ça le shéma dégénère au fil des dévelopeurs et c'est une source de connaissance qui n'est pas exploitée.
__________________
PHP fait nativement la validation d'adresse électronique Utilisez le bouton résolu! |
|
|
00
|
|
|
#7 | |
![]() ![]() |
Citation:
et comme c'est connu justement je me demandais pourquoi il ne le faisait pas alors que cela réduirait considérablement le nombre de requête... Faut se plaindre auprès de Joomla pour ça ^^ ?
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Inscription : septembre 2010 Messages : 1 239 ![]() |
Citation:
__________________
- Réalisations - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical. |
|
|
|
00
|
|
|
#9 | |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Citation:
Innodb est plus lent que Myisam ; Joomla a besoin d'être rapide. |
|
|
|
00
|
|
|
#10 | |
![]() ![]() |
Citation:
De plus, cela voudrait dire que cela va plus vite de faire 10 requêtes pour mettre à jour en cascade (par exemple) plutôt qu'une 1 ? Le monde à l'envers MySql ^^ Supposons je crée un CMS, il serait plus judicieux de ne pas faire de relation et de laisser en MyISAM alors ?
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
|
00
|
|
|
#11 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
La gestion des contraintes permet de garantir la cohérence des données et offre des fonctionnalités comme les suppressions en cascade.
Innodb permet également les transactions. Sur la question des performances, les avis sont variés : http://mysql.developpez.com/faq/?page=SYNTAXE_FORMATS |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
La question que tu dois te poser c'est : Ai-je besoin d'intégrité référentiel sur mes données ?
Si tu te fiche éperdument qu'un utilisateur puisse être relié à un groupe n'existant plus (par exemple) alors tu n'as que peu d'intérêt à opter pour innoDb. Si en revanche c'est très important alors tu devrais sérieusement penser à innodb. Mais bon y parait que le modèle référentiel est hasbeen et que l'avenir est au noSql ... (avis que je ne partage pas soit dit en passant) |
|
00
|
|
|
#13 |
![]() ![]() |
ok merci pour vos réponses en tout cas.
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com