MySQL, PostgreSQL, SQLite ou SQL Server
Le projet Redmine peut être utilisé avec les bases de données MySQL, PostgreSQL, SQLite ou SQL Server (les trois premiers sont en fait supportés nativement par Ruby on Rails). Mais lequel choisir pour votre installation Redmine ? C'est peut-être une question trop importante pour être ignorée.
La plupart des utilisateurs l'utilisent avec MySQL. Malgré leurs raisons de le choisir, cela signifie que Redmine a été mieux testé avec ce backend de base de données. Cet argument devient encore plus important si l'on considère que certains plugiciels utilisent SQL directement (c'est-à-dire sans le générateur de requêtes Rails SQL).
Mais si vous recherchez une source fiable sur laquelle la base de données est plus rapide avec Redmine, vous pouvez consulter les journaux de construction Redmine à l'adresse http://www.redmine.org/builds/index.html. Ces journaux contiennent les résultats des tests pour différentes versions de Ruby et différents backends de base de données. Ainsi, pour les tests de révisions, r14600, r14597 et r14596, dans la branche stable 3.1-stable on obtient les résultats suivants (uniquement pour ruby-1.9.3-p194) :
MySql | Postgresql | SQLite | SQL Server | |
---|---|---|---|---|
r14600 | 901.068992 secondes | 752.914607 secondes | 698.311900 secondes | 1356.417375 secondes |
r14597 | 684.866031 secondes | 815.066303 secondes | 636.497712 secondes | 1056.660942 secondes |
r14596 | 733.023295 secondes | 781.173148 secondes | 726.835502 secondes | 1019.416963 secondes |
Moyenne | 772.986106 secondes | 783.051353 secondes | 687.215038 secondes | 1144.165093 secondes |
Dans le tableau précédent, on utilise les données des journaux susmentionnés. Certes, au moment où vous lirez cette section, il y aura de nouvelles données, mais comme le montre la pratique, les résultats seront probablement les mêmes. Quoi qu'il en soit, vous pouvez consulter de nouvelles données ou prendre en compte davantage de révisions pour revérifier les résultats.
Ainsi, selon ces données, SQLite est le plus rapide, SQL Server est le plus lent et PostgreSQL est un peu plus lent que MySQL.
Mais ne vous pressez pas de prendre une décision en faveur du backend le plus rapide. Malheureusement, SQLite a des problèmes d'évolutivité (vous ne pouvez pas le mettre sur un serveur séparé) et se comportera de manière incorrecte dans un environnement multi-utilisateurs. Et je suis sûr que vous voudrez servir de nombreux utilisateurs à la fois.
Vous devez également noter qu'en plus de la lenteur relative, SQL Server ne fonctionne que sur Windows ou Linux (à partir de SQL Server 2017), son édition complète n'est pas gratuite et la version gratuite (Express) est limitée. De plus, la prise en charge de ce backend de base de données a été ajoutée spécialement à Redmine et n'est pas native de Rails. Cela signifie qu'il n'a pas été testé aussi bien que d'autres alternatives. Quoi qu'il en soit, si vous avez déjà SQL Server en cours d'exécution dans votre réseau d'entreprise, il peut être judicieux de l'utiliser pour Redmine.