Analyses

Six Mythes Persistants sur le Choix de Bases de Données : SQL, NoSQL et NewSQL Décryptés

Au-delà de la latence, les équipes rencontrent des défis opérationnels spécifiques. Voici les points de friction récurrents observés en production :

Julien Vasseur
24 04 202610 min lecture
Six Mythes Persistants sur le Choix de Bases de Données : SQL, NoSQL et NewSQL Décryptés
13 min de lecture 8 avr. 2026
Partager :

« NoSQL garantit toujours une scalabilité horizontale illimitée »

Cette affirmation constitue probablement le mythe le plus répandu dans les discussions sur l'architecture de données. La promesse d'une scalabilité horizontale sans friction a propulsé l'adoption massive de systèmes comme MongoDB et Cassandra au début des années 2010. L'idée sous-jacente possède un fondement technique : les bases NoSQL éliminent les contraintes relationnelles qui compliquent la distribution des données. Les architectures sans jonction permettent effectivement un partitionnement plus direct des enregistrements. Pourtant, cette simplification cache des compromis architecturaux significatifs.

Réalité : La scalabilité horizontale dépend fondamentalement de la qualité du partitionnement et de l'absence de hot partitions. Un schéma de clé mal conçu concentre les écritures sur quelques nœuds, créant des goulets d'étranglement qui annulent les bénéfices de la distribution. Les systèmes de production rencontrent régulièrement des situations où 20% des partitions absorbent 80% du trafic. Ce phénomène survient particulièrement lors d'événements métier concentrés dans le temps – soldes flash, publications virales, pics de fin de mois. La redistribution dynamique des données implique des coûts opérationnels considérables et génère souvent des alertes d'on-call pages per week dépassant les seuils acceptables. Les équipes découvrent que la scalabilité théorique se heurte aux patterns d'accès réels de leurs applications.

« SQL impose des migrations schéma bloquantes qui paralysent les déploiements »

Les développeurs habitués aux cycles de release rapides citent fréquemment les migrations de schéma comme argument contre les bases relationnelles. L'image de tables verrouillées pendant des heures, bloquant les déploiements en production, alimente cette perception. Les systèmes legacy avec des tables de centaines de millions de lignes ont effectivement connu ce problème. Les opérations ALTER TABLE sur PostgreSQL ou MySQL provoquaient des locks exclusifs, rendant impossible tout changement sans fenêtre de maintenance. Cette réalité historique a forgé une génération d'ingénieurs méfiants envers les contraintes de schéma.

Réalité : Les stratégies de migration modernes permettent des évolutions schéma sans interruption de service. Les techniques comme expand-contract, où l'on ajoute d'abord une colonne nullable avant de migrer progressivement les données, éliminent les locks prolongés. PostgreSQL offre CREATE INDEX CONCURRENTLY depuis la version 8.2, permettant la construction d'index sans bloquer les écritures. Les outils comme gh-ost de GitHub ou pt-online-schema-change de Percona réécrivent les tables en arrière-plan avec une interruption finale de quelques secondes. Les équipes sophistiquées emploient des dual-write patterns pendant les transitions, écrivant simultanément dans l'ancienne et la nouvelle structure. Cette approche nécessite certes une rigueur méthodologique – documenter chaque étape dans un design doc détaillé, tester sur des environnements de staging avec des volumes réalistes. Mais elle démontre que le modèle relationnel n'impose pas intrinsèquement des blocages opérationnels. La vraie contrainte réside dans la discipline de migration, non dans la technologie elle-même.

« Les bases relationnelles ne peuvent pas gérer les volumes de données massifs »

Cette croyance provient largement des succès médiatisés de systèmes NoSQL chez les géants technologiques. Lorsque Google a publié le papier Bigtable en 2006, suivi de Dynamo d'Amazon en 2007, l'industrie a conclu que les bases relationnelles atteignaient leurs limites physiques. Les exemples de Facebook migrant vers Cassandra ou de Twitter adoptant Manhattan ont renforcé cette perception. Les conférences techniques de l'époque présentaient systématiquement NoSQL comme la seule voie viable au-delà de quelques téraoctets. Cette narration a influencé des milliers de décisions architecturales.

Les limites d'échelle reflètent davantage les choix d'architecture initiale que les capacités intrinsèques des moteurs de persistance.

Réalité : Des systèmes relationnels gèrent régulièrement des centaines de téraoctets en production avec des performances prévisibles. Instagram opère des clusters PostgreSQL multi-téraoctets avec des milliards de lignes par table. Uber a documenté son infrastructure MySQL gérant des pétaoctets de données transactionnelles. Ces déploiements reposent sur des techniques éprouvées : partitionnement applicatif par identifiant utilisateur, réplication en lecture pour distribuer la charge, archivage progressif des données historiques. La clé réside dans l'acceptation que toute base de données – relationnelle ou non – nécessite une architecture de sharding au-delà d'un certain volume. PostgreSQL avec Citus transforme une instance unique en cluster distribué transparent. Vitess orchestre des milliers d'instances MySQL comme un système unifié. Ces solutions démontrent que le modèle relationnel reste viable à grande échelle. Les équipes abandonnent prématurément SQL non par nécessité technique, mais par manque de connaissance des patterns de scalabilité moderne. L'infra cost per active user reste souvent comparable entre architectures bien conçues.

« NewSQL offre le meilleur des deux mondes sans compromis »

L'émergence de systèmes comme CockroachDB, Google Spanner et YugabyteDB a créé un espoir séduisant : conserver les garanties ACID et SQL tout en obtenant la scalabilité horizontale de NoSQL. Le marketing de ces produits met l'accent sur l'élimination des choix douloureux. Les démonstrations montrent des clusters qui s'étendent automatiquement, des transactions distribuées cohérentes, et des requêtes SQL complexes sur des données géographiquement réparties. Pour les organisations fatiguées de gérer des systèmes hétérogènes, cette promesse d'unification semble idéale. Les études de cas publiées soulignent les migrations réussies depuis des architectures fragmentées.

Réalité : Les systèmes NewSQL échangent la cohérence immédiate contre une latence structurellement plus élevée due aux protocoles de consensus distribué. Chaque transaction implique des round-trips réseau multiples pour coordonner les nœuds via Raft ou Paxos. Les opérations qui prenaient 2-3 millisecondes sur PostgreSQL local consomment 15-30 millisecondes sur CockroachDB multi-région. Cette augmentation de latence se propage à travers toute la chaîne de requêtes. Les applications conçues pour des réponses sub-10ms découvrent des dégradations de percentiles p99 significatives. La géo-distribution aggrave le problème : un cluster réparti entre Paris, Francfort et Londres impose des délais incompressibles liés à la vitesse de la lumière.

Considérations opérationnelles critiques

Au-delà de la latence, les équipes rencontrent des défis opérationnels spécifiques. Voici les points de friction récurrents observés en production :

Ces contraintes ne disqualifient pas NewSQL pour tous les cas d'usage. Les applications nécessitant une cohérence forte avec une distribution géographique large bénéficient réellement de ces systèmes. Mais l'idée d'un compromis zéro relève du marketing plutôt que de la réalité technique. Chaque gain dans une dimension – cohérence, disponibilité, partition tolerance – implique un coût mesurable dans une autre. Les équipes doivent évaluer si leurs exigences métier justifient ces échanges. Un système de réservation de billets d'avion tolère moins l'incohérence qu'un système de recommandations de contenu. La décision dépend du contexte métier, non de tendances architecturales.

« Le schéma flexible de NoSQL accélère le développement initial »

Les développeurs apprécient la liberté d'insérer des documents JSON sans définir préalablement une structure rigide. Cette agilité séduit particulièrement lors des phases exploratoires où les modèles de données évoluent quotidiennement. MongoDB permet de persister immédiatement un objet JavaScript sans migration. Cette capacité élimine les allers-retours entre développeurs et administrateurs de bases de données. Les équipes startup citent fréquemment cette flexibilité comme facteur d'accélération décisif. Le cycle itération-déploiement se mesure en heures plutôt qu'en jours. Cette vélocité initiale a un attrait indéniable pour les organisations en phase de discovery produit.

Réalité : L'absence de schéma formel déplace la validation vers la couche applicative, créant une dette technique croissante. Six mois après le lancement, les collections contiennent des documents avec des structures contradictoires – champs renommés, types modifiés, niveaux de nesting variables. Chaque query doit défensivement gérer ces variations, gonflant le code de conditions null checks et de branches de compatibilité. Les nouveaux développeurs rejoignant l'équipe peinent à comprendre la structure réelle sans schéma de référence. Les migrations de données deviennent cauchemardesque : identifier tous les documents affectés par un changement de format nécessite des scans complets coûteux. Les équipes finissent par implémenter des validations de schéma dans l'applicatif, recréant manuellement les contraintes qu'un moteur relationnel aurait appliquées automatiquement. Cette situation génère un feature flag debt count élevé, chaque version de document nécessitant son propre chemin de code. L'économie initiale de temps se transforme en surcoût permanent de maintenance. Les systèmes NoSQL modernes comme MongoDB proposent désormais des validations de schéma JSON optionnelles, reconnaissant implicitement cette limite.

« Les transactions distribuées sont impossibles sans système relationnel »

Cette croyance inverse des mythes précédents reflète un conservatisme technique parfois justifié. Les développeurs formés sur les garanties ACID considèrent les transactions comme inseparables du modèle relationnel. L'idée qu'une base NoSQL puisse coordonner des opérations multi-documents avec isolation sérialisable semble contradictoire avec les principes CAP theorem. Les premiers systèmes NoSQL renonçaient explicitement aux transactions multi-enregistrements, forçant les applications à gérer manuellement la cohérence via des patterns comme saga ou compensation. Cette limitation a alimenté la perception que NoSQL et transactions s'excluent mutuellement.

Réalité : MongoDB supporte les transactions ACID multi-documents depuis la version 4.0 en 2018, DynamoDB a introduit les transactions en 2018 également. Ces implémentations utilisent des protocoles de consensus sophistiqués pour garantir l'atomicité et l'isolation à travers les partitions. Les performances restent inférieures aux transactions locales d'un moteur relationnel traditionnel, mais la fonctionnalité existe et fonctionne en production. Les équipes utilisant MongoDB peuvent désormais exécuter des transactions touchant plusieurs collections avec des garanties comparables à PostgreSQL. DynamoDB permet des lectures et écritures transactionnelles groupées avec vérification de conditions préalables. Ces capacités éliminent une différence technique majeure historique. Le choix entre SQL et NoSQL ne se résume plus à la présence ou absence de transactions. Il dépend de facteurs plus nuancés : modèle de données naturel, expertise d'équipe, écosystème d'outils. Un système de gestion de commandes e-commerce nécessite des transactions ; ce besoin peut désormais être satisfait avec MongoDB ou PostgreSQL. La décision se fonde sur d'autres critères : complexité de requêtes, patterns d'accès, préférences d'infrastructure. L'évolution technologique a convergé les capacités, rendant obsolètes les oppositions binaires simplistes.

Principe Directeur : Alignez Architecture et Patterns d'Accès Réels

Après avoir déconstruit six mythes persistants, un principe unificateur émerge : la sélection de base de données doit découler rigoureusement de l'analyse des patterns d'accès dominants de votre application, non de tendances technologiques ou d'affiliations idéologiques. Les systèmes avec des requêtes complexes impliquant jointures multiples et agrégations bénéficient du modèle relationnel et de l'optimiseur de requêtes SQL. Les applications avec des patterns clé-valeur simples et des exigences de latence extrêmes trouvent leur efficience dans des systèmes comme Redis ou DynamoDB. Les cas d'usage nécessitant des requêtes flexibles sur des structures semi-structurées justifient des bases documentaires. Cette correspondance entre architecture de persistance et patterns applicatifs détermine la maintenabilité à long terme. Les décisions prises en contradiction avec cette logique génèrent une friction permanente – code applicatif complexe compensant les inadéquations du moteur, performances dégradées malgré des ressources abondantes, incidents récurrents liés aux limites structurelles. Les équipes qui investissent le temps nécessaire pour cartographier précisément leurs patterns d'accès – volumétries, latences p99, ratios lecture-écriture, complexité de requêtes – avant de choisir leur stack technique construisent des fondations solides. Cette discipline initiale, documentée dans un incident timeline ou design doc partagé, prévient des années de regrets architecturaux. Les technologies évoluent, les fondamentaux persistent : privilégiez toujours la correspondance entre problème et solution plutôt que l'attrait de la nouveauté.

Discutons de Votre Architecture de Données

Nos architectes analysent vos patterns d'accès pour recommander la stack technique optimale. Aucune préférence dogmatique, uniquement des solutions pragmatiques.

Planifier un Audit Technique
Service
Service

Restez informé

Études de cas et playbooks. Zéro spam, zéro remplissage.

💬
LinkedInTwitterFacebook