Aller au contenu principal

Comment choisir sa base de données : MySQL, PostgreSQL, Oracle, SQL Server

Un tutoriel montre PostgreSQL, ton collègue jure par MySQL, une offre d'emploi demande Oracle, et le projet .NET d'à côté tourne sur SQL Server. Devant ce catalogue, la question qui revient tout le temps est simple à poser et pénible à trancher : laquelle prendre pour son projet ?

Guides & tutoriels ·
Adel LATIBI
Adel LATIBI

Le Briefing Dev - les ressources et actus de la semaine, droit dans ta boîte chaque vendredi gratuitement.

En vous inscrivant, vous acceptez de recevoir notre newsletter. Désinscription possible à tout moment.

Nouveau projet backend, il faut stocker des données quelque part. Beaucoup de tutoriels imposent PostgreSQL sans expliquer pourquoi. Une recherche rapide renvoie des comparatifs de performances avec des courbes qui montent, des benchmarks à des millions de requêtes par seconde, et des avis tranchés dans tous les sens. Rien de tout ça n'aide à décider pour un cas précis.

Le choix d'une base de données ressemble à un problème technique pointu. Il l'est beaucoup moins qu'il en a l'air. Sur la plupart des projets qui démarrent, quatre ou cinq bases feraient parfaitement l'affaire, et la différence de performance ne se verra jamais avant plusieurs années de croissance. Ce qui compte au moment de choisir, ce sont des critères plus terre à terre : ton écosystème, le coût des licences, les fonctionnalités dont tu as besoin, et ce que ton équipe sait déjà utiliser.

Cet article te donne une grille de lecture pour trancher sans y passer trois jours. On regarde d'abord pourquoi la question est souvent mal posée, ensuite le principe qui guide un bon choix, puis des scénarios réels, et enfin les pièges qui coûtent cher.

Le problème vient rarement de la base elle-même

Prends un cas courant. Une application de gestion pour une PME, quelques milliers d'utilisateurs, des factures, des clients, des produits. Sur ce type de charge, MySQL, PostgreSQL, SQL Server et Oracle donnent des temps de réponse identiques à l'oeil humain. Les écarts que montrent les benchmarks apparaissent à des volumes que ce projet n'atteindra pas avant longtemps, s'il les atteint un jour.

Beaucoup de débats sur la meilleure base se déroulent sur ce terrain de la performance brute, alors que la performance n'est presque jamais le facteur décisif pour un projet qui commence. Une requête mal écrite ou un index manquant ralentiront ton application mille fois plus qu'un choix de moteur. J'ai vu des applications PostgreSQL ramer parce qu'une table de dix mille lignes n'avait aucun index, pendant que des MySQL bien réglés servaient des millions de lignes sans broncher.

La vraie question à te poser tient en une phrase : dans quel environnement ce projet va-t-il vivre, et avec quelles contraintes ? Un projet PHP hébergé chez un mutualisé bon marché, une API Java en entreprise avec un DSI qui impose Oracle, une stack .NET tournée vers Azure, ou un side-project que tu déploies seul sur un petit serveur. Chacun de ces contextes pousse naturellement vers une base différente, et cette pression compte davantage qu'un tableau comparatif de fonctionnalités.

Le principe : quatre critères qui décident à ta place

Pour choisir vite et bien, passe ton projet au filtre de quatre critères, dans cet ordre. Ils suffisent à éliminer la plupart des candidats et à faire ressortir le bon.

1. L'écosystème et la stack

Le langage et le framework que tu utilises orientent déjà le choix. Un projet .NET s'intègre sans friction avec SQL Server, tous les outils Microsoft parlent la même langue. Une application PHP avec WordPress ou un CMS classique tourne presque toujours sur MySQL ou son fork MariaDB. Un projet Java d'entreprise croise souvent Oracle, parce que c'est ce que la boîte a déjà. Aller à contre-courant de ta stack est possible, mais tu paies ce choix en configuration et en documentation à défricher seul.

2. Le modèle de coût

Là, les écarts sont énormes. MySQL, PostgreSQL et MariaDB sont gratuits et open source, tu les installes sans rien payer. SQL Server propose une édition Express gratuite mais limitée, puis des licences qui grimpent vite. Oracle facture au coeur de processeur, avec des tarifs qui se comptent en dizaines de milliers d'euros et des audits de licences réputés agressifs. Pour un projet perso, une startup ou une PME, ce seul critère écarte souvent Oracle et parfois SQL Server sans autre débat.

3. Les fonctionnalités dont tu as réellement besoin

Certaines bases brillent sur des usages précis. PostgreSQL gère le format JSONB, les données géographiques via l'extension PostGIS, la recherche plein texte et des types de données avancés. Si ton projet manipule des coordonnées de cartes ou des documents semi-structurés, PostgreSQL t'évite des contorsions. MySQL reste plus simple et souvent suffisant pour du CRUD classique. Oracle et SQL Server apportent des outils d'administration poussés utiles aux grosses structures, dont un projet modeste ne verra jamais la couleur.

4. Ce que ton équipe sait déjà faire

Une base que personne ne maîtrise devient un frein permanent. Si les gens autour de toi connaissent MySQL, démarrer sur Oracle pour gagner des fonctionnalités théoriques t'expose à des semaines de galère sur des sujets basiques. La base la mieux adaptée sur le papier n'est pas la meilleure si elle ralentit toute l'équipe au quotidien.

Une fois ces quatre critères posés, le choix se réduit presque toujours à un ou deux candidats évidents. Le reste tient plus de la préférence personnelle que d'un enjeu réel.

Un cinquième critère mérite d'être gardé en tête dès qu'on parle de production : la manière dont tu vas héberger cette base. Beaucoup d'équipes ne gèrent plus leur base à la main et passent par une offre managée chez un hébergeur, où les sauvegardes, les mises à jour et la réplication sont prises en charge. PostgreSQL et MySQL sont proposés en version managée à peu près partout, souvent à petit prix. SQL Server et Oracle le sont aussi, mais leur coût de licence se répercute sur la facture mensuelle. Si tu ne veux pas devenir administrateur de base de données en plus de développeur, ce point pèse dans la balance.

Des scénarios concrets pour se repérer

La théorie se comprend mieux appliquée. Un principe avant les exemples : si le projet a un besoin technique fort, ce besoin décide en premier. Un stockage de données géographiques pousse vers PostgreSQL et son extension PostGIS, quelle que soit ta stack habituelle. Sans contrainte de ce genre, et c'est le cas le plus fréquent, la stack, le budget et l'équipe départagent. Les situations qui suivent sont ces choix par défaut, à ne pas appliquer les yeux fermés.

Un site WordPress ou une boutique en ligne classique

MySQL ou MariaDB. C'est ce que l'écosystème PHP attend, ce que tous les hébergeurs proposent par défaut, et ce que la documentation suppose. Chercher à mettre PostgreSQL derrière WordPress te vaudra des plugins incompatibles pour un gain nul.

Une API moderne, un projet que tu maîtrises de bout en bout

PostgreSQL est un choix par défaut solide, et il devient le choix évident dès que le contenu du projet le demande : stockage de JSON avec le type JSONB, données géographiques via l'extension PostGIS, recherche plein texte poussée. Gratuit, complet, bien documenté, c'est aussi la base la plus citée dans les enquêtes auprès des développeurs professionnels, donc une large communauté et beaucoup de ressources.

Une application interne en environnement Microsoft

SQL Server. Si ta boîte tourne sous .NET, Azure et l'outillage Microsoft, l'intégration est native et l'équipe support connaît déjà le produit. Ici, le coût de licence est absorbé par le contexte de l'entreprise.

Un très gros système d'entreprise, banque ou assurance

C'est le terrain historique d'Oracle, choisi pour ses garanties de support, sa robustesse à très grande échelle et des contraintes réglementaires. Ce choix se décide au niveau du DSI, pas du développeur qui commence un projet.

Un petit projet, un prototype, une application mobile

SQLite mérite une mention. Il fonctionne sans serveur, sous la forme d'un simple fichier posé à côté de ton application. Zéro configuration, parfait pour un prototype, un outil local ou une appli mobile. Beaucoup de projets démarrent dessus avant de migrer vers PostgreSQL le jour où la charge le justifie.

Un mot sur les bases NoSQL comme MongoDB, qu'on oppose souvent aux bases SQL. Elles répondent à des besoins particuliers : gros volumes de données peu structurées, schéma qui change souvent, mise à l'échelle horizontale. Pour une application de gestion avec des relations claires entre les données, une base relationnelle reste plus adaptée et plus sûre. Choisir NoSQL par effet de mode, sur un projet qui aurait été très bien en SQL, complique la vie plus qu'il ne l'améliore.

Si tu débutes sur ce terrain, commencer par une base relationnelle et le langage SQL te donne les fondations qui servent partout. Notre formation SQL et bases de données relationnelles avec MySQL couvre exactement ça : interroger, manipuler et concevoir une base propre, une compétence attendue de tout développeur backend.

Les pièges qui coûtent cher

Quelques erreurs reviennent assez souvent pour mériter un avertissement.

Choisir sur un benchmark

Les benchmarks que tu trouves en ligne mesurent des conditions qui n'ont rien à voir avec ton projet. Ils comparent des configurations extrêmes, sur du matériel spécifique, pour des charges que tu ne verras pas. Décider sur cette base revient à choisir une voiture familiale sur un temps au tour de circuit.

Sous-estimer le coût des licences propriétaires

Oracle facture au coeur de processeur et mène des audits de licences qui surprennent les équipes mal préparées. Une facture inattendue à cinq ou six chiffres a déjà fait basculer plus d'un projet. Avant de partir sur Oracle ou une édition payante de SQL Server, chiffre le coût réel sur trois ans.

Sur-dimensionner pour un besoin qui n'existe pas

Prévoir une base capable d'encaisser des millions d'utilisateurs pour un projet qui en a trois te fait payer, en complexité et parfois en argent, une échelle imaginaire. Tu pourras toujours migrer plus tard si le succès arrive. Ce jour-là, tu auras aussi les moyens et les données pour choisir mieux.

Négliger les droits d'accès

Quelle que soit la base, un compte applicatif qui a tous les droits est une faille qui attend. Un utilisateur de base ne devrait pouvoir faire que ce dont l'application a besoin. Ce sujet dépasse le choix du moteur, il est développé dans notre article sur le principe de moindre privilège.

Dernier point, souvent oublié quand on héberge soi-même : la base doit être isolée et sauvegardée dès le premier jour. Une partie des failles qu'on retrouve dans les projets juniors tient à une base exposée sur internet ou sans sauvegarde. Utiliser Docker pour isoler ta base proprement dans son conteneur est une bonne habitude à prendre tôt.

Que retenir

Commence par regarder le contenu de ton projet : s'il impose du géospatial, du JSON lourd ou de la recherche plein texte, ce besoin tranche et pointe souvent vers PostgreSQL. Sans contrainte de ce type, PostgreSQL et MySQL couvrent la quasi-totalité des besoins gratuitement, et le choix se joue alors sur ta stack, ton budget et l'équipe : SQL Server en contexte Microsoft, Oracle dans les très grosses structures qui l'ont déjà, SQLite pour les prototypes et les petits outils. La performance, elle, arrive tout en bas de la liste.

Et si tu hésites encore après avoir passé ces critères, prends la base que tu connais le mieux. Tu iras plus vite, tu feras moins d'erreurs, et tu pourras toujours changer quand tu auras une raison sérieuse de le faire.

Questions fréquentes

MySQL ou PostgreSQL pour un débutant ?

Les deux sont d'excellents points de départ, gratuits et très documentés. MySQL est un peu plus simple à prendre en main et omniprésent dans l'écosystème PHP. PostgreSQL offre plus de fonctionnalités avancées et il est devenu le choix par défaut de beaucoup de projets modernes. Si tu n'as aucune contrainte, PostgreSQL te servira plus longtemps, mais commencer par MySQL ne te fera perdre aucune compétence transférable, le langage SQL est le même.

Oracle en vaut-il la peine pour un petit projet ?

Dans la grande majorité des cas, non. Le coût des licences, la complexité d'administration et le risque d'audit rendent Oracle disproportionné pour un projet modeste. Oracle a du sens quand une entreprise l'utilise déjà à grande échelle, avec les équipes et les contrats de support qui vont avec. Pour un side-project ou une startup, une base open source fait le travail sans facture.

SQL ou NoSQL, comment trancher ?

Pars du modèle de tes données. Si elles ont des relations claires entre elles, des factures liées à des clients liés à des commandes, une base relationnelle comme PostgreSQL ou MySQL est plus sûre et plus simple à interroger. NoSQL comme MongoDB devient intéressant pour de très gros volumes de données peu structurées ou un schéma qui change en permanence. Pour un projet de gestion classique, reste sur du relationnel.

Puis-je changer de base de données plus tard ?

Oui, mais ça demande du travail. Une migration entre PostgreSQL et MySQL reste gérable car le langage SQL est proche, surtout si ton code passe par une couche d'abstraction comme un ORM. Passer d'une base relationnelle à du NoSQL, ou l'inverse, est plus lourd car le modèle de données change. C'est une raison de plus de choisir une base standard et gratuite au départ, plutôt que de se verrouiller sur une solution propriétaire coûteuse à quitter.

Faut-il connaître plusieurs bases de données pour trouver un job ?

Maîtriser le langage SQL et une base relationnelle solide compte plus que de collectionner les moteurs. Une fois que tu sais concevoir un schéma propre, écrire des requêtes efficaces et gérer des index sur une base, passer à une autre demande surtout d'apprendre ses spécificités. Les recruteurs regardent ta compréhension du modèle relationnel avant la liste des produits sur ton CV.

Vous êtes expert ?

Partagez votre expertise sur notre blog

Tutoriel, retour d'expérience, analyse - publiez un article invité et gagnez en visibilité.

Écrire pour nous