Bonjour
J'ai un dilemme sur le choix du moteur de stockage pour ma base de données : Myisam ou innoDB.
Après avoir lu plusieurs articles sur le sujet je pense connaitre les avantages et inconvénients de chacun mais je n'arrive pas à faire un choix.
MyIsam :
- Recherche Fulltext
- Plus rapide car moins de contrôles (select, insert), même si cette différence diminue de plus en plus
- Moins de ressources utilisés au niveau du stockage de la BDD et au niveau de la memoire lors de l’exécution des requetes
- Stable mais n'évolue plus
InnoDB
- gestion des transactions
- getsion des clés étrangères
- moteur par defaut de mysql depuis mysql 5.5
- Fulltext possible depuis la version 5.6.4
- Toujours en évolution
Alors voila les soucis :
J'ai besoin de faire un moteur de recherche sur mon site, mais sur mutualisé (en tout cas chez OVH), mysql 5.6.4 n’est pas encore implanté. maximum 5.5 avec SQL privé
Je ne peux pas utiliser Sphinx et autres API non plus sur mutualisé, et les moteurs de recherches PHP (lucène par exmeple, je crois) risquent vite de montrer leur limite lorsque le site contiendra plusieurs milliers d'articles.
De plus il semblerait qu'en innodb la BDD prend beaucoup plus de place et les ressources mémoires utilisées durant les traitement semblent être bien plus importantes d'après mes recherches. Possibilité donc de saturation plus rapide si le serveur ne suit pas (ram etc.).
Autre point, mysam bloque la table a chaque insert, update alors qu'Innodb bloque seulement la ligne. Même si je ne pense pas avoir un grand nombre d'insert et update sur mes sites, ce point me semble réellement important pour le choix du moteur. :|
En innodb est-on obligé de gérer les clés étrangères? peut-on par exemple utiliser uniquement les transactions?
Est-on d'ailleurs obligé d'itiliser les transactions, ou peut on coder avec le moteur innodb de la même façon qu'avec myisam? (ok ca serait dommage, mais c’est pour savoir si on peut améliorer ensuite son code au fur et à mesure (transactions...)
Différence entre ACID et transactions? pas sur de bien comprendre.
Les commandes mysqldump pour exporter ou importer une bdd sont les mêmes avec innodb et mysql?
Myisam va t-il mourir comme le moteur isam? ou peut on espérer qu'il restera encore présent dans 20 ans? :mrgreen:
Autre soucis actuellement je test en local sur une version mysql 5.6, si j'utilise le moteur innodb je risque d'avoir des surprises sur des versions précédentes étant donné qu'innodb est en pleine évolution.
Pour vous quel moteur est le plus performant? avez vous déjà fait des tests (benchmarks)? Que me conseillerez vous? Quelle solution existe pour mon moteur de recherche si j'utilise Innodb?
Une solution serait de créer une table myisam qui recopierait les données nécessaires pour la recherche. table que je mettrais a jour a chaque ajout, suppression ou mise à jour d'un article (via trigger ou non). cette solution pourrait être éventuellement provisoire le tant que le fulltext Innodb soit possible sur mutualisé.
Lorsqu'on passe de MyIsam à innoDB que faut il bien vérifier pour qu'il n'y ai pas de coquille?
je serais tenter de continuer d'utiliser MyIsam, mais je crains que dans quelques années ce moteur ne soit plus du tout utilisé et que ça me pose problème :/
J'ai un dilemme sur le choix du moteur de stockage pour ma base de données : Myisam ou innoDB.
Après avoir lu plusieurs articles sur le sujet je pense connaitre les avantages et inconvénients de chacun mais je n'arrive pas à faire un choix.
MyIsam :
- Recherche Fulltext
- Plus rapide car moins de contrôles (select, insert), même si cette différence diminue de plus en plus
- Moins de ressources utilisés au niveau du stockage de la BDD et au niveau de la memoire lors de l’exécution des requetes
- Stable mais n'évolue plus
InnoDB
- gestion des transactions
- getsion des clés étrangères
- moteur par defaut de mysql depuis mysql 5.5
- Fulltext possible depuis la version 5.6.4
- Toujours en évolution
Alors voila les soucis :
J'ai besoin de faire un moteur de recherche sur mon site, mais sur mutualisé (en tout cas chez OVH), mysql 5.6.4 n’est pas encore implanté. maximum 5.5 avec SQL privé
Je ne peux pas utiliser Sphinx et autres API non plus sur mutualisé, et les moteurs de recherches PHP (lucène par exmeple, je crois) risquent vite de montrer leur limite lorsque le site contiendra plusieurs milliers d'articles.
De plus il semblerait qu'en innodb la BDD prend beaucoup plus de place et les ressources mémoires utilisées durant les traitement semblent être bien plus importantes d'après mes recherches. Possibilité donc de saturation plus rapide si le serveur ne suit pas (ram etc.).
Autre point, mysam bloque la table a chaque insert, update alors qu'Innodb bloque seulement la ligne. Même si je ne pense pas avoir un grand nombre d'insert et update sur mes sites, ce point me semble réellement important pour le choix du moteur. :|
En innodb est-on obligé de gérer les clés étrangères? peut-on par exemple utiliser uniquement les transactions?
Est-on d'ailleurs obligé d'itiliser les transactions, ou peut on coder avec le moteur innodb de la même façon qu'avec myisam? (ok ca serait dommage, mais c’est pour savoir si on peut améliorer ensuite son code au fur et à mesure (transactions...)
Différence entre ACID et transactions? pas sur de bien comprendre.
Les commandes mysqldump pour exporter ou importer une bdd sont les mêmes avec innodb et mysql?
Myisam va t-il mourir comme le moteur isam? ou peut on espérer qu'il restera encore présent dans 20 ans? :mrgreen:
Autre soucis actuellement je test en local sur une version mysql 5.6, si j'utilise le moteur innodb je risque d'avoir des surprises sur des versions précédentes étant donné qu'innodb est en pleine évolution.
Pour vous quel moteur est le plus performant? avez vous déjà fait des tests (benchmarks)? Que me conseillerez vous? Quelle solution existe pour mon moteur de recherche si j'utilise Innodb?
Une solution serait de créer une table myisam qui recopierait les données nécessaires pour la recherche. table que je mettrais a jour a chaque ajout, suppression ou mise à jour d'un article (via trigger ou non). cette solution pourrait être éventuellement provisoire le tant que le fulltext Innodb soit possible sur mutualisé.
Lorsqu'on passe de MyIsam à innoDB que faut il bien vérifier pour qu'il n'y ai pas de coquille?
je serais tenter de continuer d'utiliser MyIsam, mais je crains que dans quelques années ce moteur ne soit plus du tout utilisé et que ça me pose problème :/