Bonjour,
J'ai un application qui insert environ 10 000 enregistrements par jours. Toutes les tables de cette base de donnés fonctionnent avec le moteur InnoDB.
Ce logiciel est en fonction depuis un certain temps et jusqu'ici la plus grosse table contient plus de 4 millions d'enregistrements, ce qui à pour effet d'avoir un assez gros impact sur les performances.
Malgré tout, j'ai judicieusement créé mes indexes de façon à ce que les performances en lecture soit prioritaires.
Je me demande si je n'aurais pas mieux fait de tout bâtir sous MyIsam ?
J'avais choisis InnoDB parce que j'ai lu que la sécurité des données est plus fiable et que les transactions y sont possibles.
Pour la sécurité, je me dis qu'au pire on pourrait perdre une journée de données (backup journalier) mais nous pourrions récupérer ces données perdues puisqu'elles provienent de fichiers et que ces fichiers sont conserver sur un autre poste.
Pour ce qui est des transactions, quand DOIT-ON les utiliser ?
Si par exemple un nouvel utilisateur web est créé :
- Insertion l'utulisateur dans la table Users
- Insertion des rôles de cet utilisateur dans la table UsersRoles
- ...
- Etc.
Dans ce cas-ci, si un plantage survent lors d'une de ces lignes, l'utilisateur ne peu être créé à MOITIÉ ! Donc les enregistrement relatifs ne doivent pas être gardées... Est-ce un bon exemple pour l'utilisation de transaction ?
Si les transactions ne me sont pas vraiment utiles, alors je modifierais mes table sous MyIsam pour récupérer les performances en lecture que j'ai besion.
Merci à tous.
Partager