markdown
JSONB, JIT et HeatWave redéfinissent les limites de l’OLTP d’ici 2026
Entre 2018 et 2026, deux forces ont discrètement remodelé la façon dont les moteurs relationnels exécutent les charges de travail modernes: une explosion des avancées d’exécution des cœurs dans PostgreSQL—requêtes parallèles, partitionnement plus intelligent et compilation juste‑à‑temps—et l’ascension du design HTAP intégré de MySQL HeatWave qui intègre l’analyse MPP, l’apprentissage automatique en moteur et la recherche vectorielle dans un service MySQL unique. L’effet net est une nouvelle enveloppe de performance pour l’OLTP qui s’étend davantage dans le territoire semi‑structuré, analytique et adjacent à l’IA sans abandonner la correction transactionnelle.
Cela est important maintenant car les applications ne tracent plus de lignes claires entre le comportement transactionnel et analytique. Les charges utiles lourdes en JSON, les recherches par similarité vectorielle et les agrégations ad hoc se heurtent régulièrement à un OLTP à haut débit. Le resserrement de la boucle d’exécution de PostgreSQL et les capacités JSONB ouvrent un chemin: maintenir la complexité à l’intérieur d’un cœur priorisant les standards avec des extensions là où nécessaire. La réponse de MySQL est différente: intégrer directement les capacités analytiques, ML et vectorielles aux côtés d’InnoDB et exposer le tout comme un service géré unifié.
Cet article examine les changements architecturaux derrière ces approches, détaille les modifications d’exécution qui influencent la latence et le débit, et contraste le cœur extensible de PostgreSQL avec la pile HTAP intégrée de HeatWave. Les lecteurs apprendront où la conception de chaque moteur tend à exceller, les compromis à attendre et comment choisir les fonctionnalités qui s’alignent avec les profils de charge de travail.
Détails d’architecture/implémentation
Pipeline d’exécution PostgreSQL: parallélisme, partitionnement et JIT
À partir de la v11, le chemin d’exécution de PostgreSQL a incorporé trois améliorations qui ont remodelé son profil OLTP et de charges de travail mixtes:
- Exécution de requêtes parallèles: Des travailleurs parallèles peuvent être engagés pour traiter des parties d’un plan simultanément, élargissant la fenêtre dans laquelle Postgres peut réduire la latence sur des déclarations complexes tout en préservant la sémantique transactionnelle. Des métriques spécifiques ne sont pas disponibles, mais les modèles d’adoption montrent que cette capacité a matériellement élargi l’enveloppe de charge de travail possible.
- Partitionnement amélioré: Le partitionnement déclaratif et une meilleure élagage des partitions signifient que moins de tuples sont scannés et qu’il y a moins de gaspillage de l’exécuteur pour les données en fonction du temps ou de la clé. Le résultat pratique est une latence plus prévisible sous des tables larges ou de hauts taux d’écriture où les partitions confinent les ensembles de travail actifs.
- Compilation juste‑à‑temps (JIT): En générant du code machine pour l’évaluation des expressions et la déformée des tuples dans des plans appropriés, le JIT réduit les surcharges par tuple dans les opérations dépendantes du CPU. Le résultat observable principal est une réduction de la latence de queue sur les requêtes complexes et un débit plus élevé lorsque l’ensemble de travail est déjà en mémoire.
Ces changements ne fonctionnent pas en isolation; ils se combinent. Le partitionnement réduit l’ensemble de données qu’un plan touche, le parallélisme étend le travail à travers les travailleurs, et le JIT réduit la surcharge du CPU dans les boucles les plus chaudes. Ensemble, ils déplacent une gamme croissante de déclarations OLTP/analytique mixtes dans un territoire “assez bon” sur un seul moteur, surtout lorsqu’ils sont associés à des niveaux gérés hautes performances tels que Aurora PostgreSQL, Hyperscale (Citus) et AlloyDB.
Mécaniques JSONB et performance semi‑structurée
Le JSONB de PostgreSQL associe un format de stockage binaire‑parsé à un ensemble riche d’opérateurs et d’options d’indexation complètes. En pratique, cela permet aux développeurs d’exprimer des filtres complexes et des projections sur des données semi‑structurées sans transférer les charges utiles à un magasin de documents externe. Les détails spécifiques de la mise en page sur disque et les internes des types d’index sont hors du périmètre ici; ce qui importe, c’est que l’indexation soutient les modèles d’accès communs et que les opérateurs couvrent les besoins de transformation et de prédicat typiques des applications centrées sur JSON.
Deux effets secondaires de performance se démarquent:
- Réduction de l’inadéquation des impédances: Avec JSONB intégré dans les plans relationnels, les applications évitent le va‑et‑vient vers des systèmes secondaires pour les filtres semi‑structurés, bénéficiant à la fois à la latence et à la cohérence.
- Prédicats soutenus par index: Là où les prédicats JSON sont sélectifs, une indexation appropriée peut réduire les scans à des opérations uniquement index. Des chiffres de benchmark spécifiques ne sont pas disponibles, mais l’activité de migration vers PostgreSQL pour les charges de travail lourdes en JSON souligne l’impact pratique.
Planificateur, statistiques et SQL complexe
La complexité des charges de travail SQL profite indirectement du trio de parallélisme, partitionnement et JIT. Une élagage plus précise des partitions réduit le gonflement des plans, les travailleurs parallèles raccourcissent le temps d’horloge sur des agrégations et des jointures appropriées, et le JIT réduit le coût CPU par ligne. Bien que les améliorations détaillées du planificateur et des statistiques ne soient pas énumérées ici, les praticiens citent constamment “SQL avancé” et “stratégies d’indexation” comme moteurs pour choisir PostgreSQL dans des environnements de requêtes complexes. Le résultat: une plus large part de la logique adjacente à l’analyse peut rester à l’intérieur du moteur OLTP avec une latence tolérable.
État stable InnoDB et HTAP intégré de HeatWave
InnoDB de MySQL continue de fournir le profil de concurrence et de durabilité qui sous‑tend l’OLTP à l’échelle du web. Le changement le plus conséquent, cependant, est architectural: MySQL HeatWave unifie trois sous‑systèmes en un service unique aux côtés des chemins d’exécution InnoDB:
- Analytique MPP: Une couche analytique distribuée en mémoire est intégrée plutôt que fixée, permettant aux requêtes SQL de s’étendre aux données OLTP et aux réplicas analytiques sans exporter les données vers un entrepôt externe.
- Apprentissage automatique en moteur: HeatWave entraîne et exécute des modèles au sein du même service géré, éliminant l’ETL entre systèmes pour les tâches ML courantes.
- Recherche vectorielle: HeatWave Vector gère l’ingestion de vecteurs et la recherche de similarité de manière native, co‑localisée avec les données relationnelles MySQL.
L’intégration minimise la surface opérationnelle. Les équipes qui standardisent déjà sur MySQL peuvent adopter les capacités HTAP et vectorielles sans gérer une base de données analytique séparée, un planificateur de pipelines ou un index vectoriel autonome.
Amplification du service géré
Sur les clouds, les niveaux premium compatibles avec Postgres étendent l’enveloppe d’exécution tout en conservant les sémantiques de PostgreSQL: Aurora PostgreSQL et AlloyDB se concentrent sur la performance et la résilience, et Azure Hyperscale (Citus) ajoute l’exécution distribuée et le sharding à Postgres. Du côté de MySQL, HeatWave est disponible en tant que service géré unifié, y compris sur AWS, apportant ses fonctionnalités HTAP et vectorielles aux patrimoines MySQL sans prolifération d’infrastructure. Ces conceptions de service amplifient les philosophies de moteur sous‑jacentes: extensibilité et compatibilité pour PostgreSQL; intégration et consolidation pour MySQL HeatWave.
Tableaux de comparaison
Philosophie de conception et capacités
| Dimension | Cœur PostgreSQL (2018–2026) | MySQL HeatWave (2026) |
|---|---|---|
| Avancées d’exécution OLTP | Requête parallèle, partitionnement amélioré, JIT réduisent la surcharge CPU et de l’exécuteur; viabilité plus large des charges de travail mixtes (métriques spécifiques non disponibles) | InnoDB reste le cœur OLTP; concurrence/durabilité stable; HTAP géré par couche HeatWave intégrée |
| JSON semi‑structuré | JSONB avec opérateurs riches et indexation complète; conserve la logique lourde en JSON en moteur | JSON pris en charge; le chemin HeatWave met l’accent sur la conservation des charges de travail à l’intérieur de MySQL, avec JSON où approprié |
| HTAP/OLAP | Postgres peut avancer dans l’analyse via des extensions et des services (Citus/Hyperscale, AlloyDB, Aurora PostgreSQL); modèle toujours basé sur le cœur + extensions | Analyse MPP intégrée à l’intérieur du service MySQL; pas besoin d’entrepôt externe pour de nombreux scénarios |
| Apprentissage automatique | Typiquement via des outils externes ou des extensions; posture est “composer avec l’écosystème” | Formation d’IA en moteur/inférence au sein de HeatWave, évitant l’ETL entre systèmes |
| Recherche vectorielle | Extension pgvector intègre la recherche par similarité ANN dans les plans PostgreSQL | HeatWave Vector fournit un magasin vectoriel natif et une recherche de similarité au sein du service HeatWave |
| Scale‑out | Hyperscale (Citus) distribue Postgres; Aurora/AlloyDB offrent le scale‑up et l’échelonnage de lecture | HeatWave offre des analyses distribuées au sein du même service MySQL |
| Options de service géré | Aurora PostgreSQL (AWS), Azure Database pour PostgreSQL inclut Hyperscale (Citus), Google Cloud SQL pour PostgreSQL et AlloyDB | MySQL HeatWave disponible en tant que service unifié, y compris sur AWS |
Où chaque approche tend à exceller
| Scénario | Cœur/compatibles PostgreSQL | MySQL HeatWave |
|---|---|---|
| SQL complexe sur relationnel + JSON | Bonne adéquation via opérateurs/indexations JSONB et exécution parallèle/JIT, conservant la logique dans un seul moteur | Viable; les équipes peuvent toujours utiliser des fonctionnalités JSON, mais la force de HeatWave se montre davantage dans la consolidation HTAP |
| OLTP mixte avec requêtes adjacentes à l’analyse | Cœur Postgres plus Citus/Hyperscale ou AlloyDB gère l’exécution distribuée/accélérée tout en préservant les sémantiques de Postgres | HTAP intégré permet aux équipes MySQL‑first de gérer l’analyse et le ML sans systèmes séparés |
| Géospatial/séries temporelles | Force de l’écosystème via PostGIS et TimescaleDB; unique plateforme logique | Utile, mais moins de concentration d’écosystème que Postgres dans ces niches |
| Applications enrichies par vecteur | pgvector intègre ANN avec logique relationnelle | HeatWave Vector intègre directement les vecteurs avec MySQL et HeatWave |
| Équipes déjà sur MySQL | — | HeatWave offre une voie de consolidation qui garde OLTP, analyse, ML et vecteur ensemble |
| Équipes priorisant l’extensibilité et le SQL orienté standards | Le modèle d’extension et les options de compatibilité de PostgreSQL s’alignent bien | Possible, mais la philosophie privilégie les sous‑systèmes intégrés à la flexibilité dirigée par l’extension |
Meilleures pratiques
Liste de contrôle de décision technique pour les architectes
Utilisez cette liste de contrôle pour aligner les fonctionnalités du moteur avec des profils de charges de travail:
- Cœur OLTP avec requêtes lourdes occasionnelles: Si des jointures/agrégations complexes et des filtres JSON se produisent à l’intérieur des transactions, privilégier les fonctionnalités PostgreSQL qui réduisent la surcharge de l’exécuteur—requête parallèle, partitionnement et JIT—pour maintenir une latence prévisible. Considérer Aurora PostgreSQL ou AlloyDB pour une marge supplémentaire.
- Données semi‑structurées comme citoyens de première classe: Choisir le JSONB de PostgreSQL pour centraliser les opérateurs JSON et les prédicats soutenus par index dans le moteur relationnel. Assurez-vous que les modèles d’accès sont suffisamment sélectifs pour bénéficier de l’indexation.
- HTAP sans systèmes supplémentaires: Si votre organisation est déjà MySQL‑first et vous cherchez à éviter des bases de données analytiques séparées, les analyses MPP intégrées de MySQL HeatWave et le ML en moteur peuvent consolider les pipelines et réduire la charge opérationnelle.
- Recherche vectorielle proche des transactions: Si vous souhaitez la similarité vectorielle dans la logique transactionnelle, PostgreSQL avec pgvector ou MySQL avec HeatWave Vector gardent les embeddings et les données relationnelles au même endroit. Sélectionnez en fonction de votre moteur principal et des outils environnants.
- SaaS distribué ou multi‑locatif: Pour les équipes orientées Postgres, Azure Hyperscale (Citus) distribue les tables/shards tout en préservant les sémantiques de PostgreSQL; c’est un chemin naturel vers le scale‑out avec un contrôle dirigé par l’extension.
Compromis dans la philosophie de design
- Cœur extensible (PostgreSQL): Vous composez les capacités—géospatial avec PostGIS, séries temporelles avec TimescaleDB, distribution avec Citus, vecteur avec pgvector—sous un SQL et un protocole de communication cohérents. Ceci est idéal lorsque vous valorisez les standards, la portabilité et la possibilité d’ajouter des capacités progressivement.
- Sous‑systèmes intégrés (MySQL HeatWave): Vous acceptez une surface gérée unique où l’analyse, le ML et le vecteur sont intégrés dans le service. Cela est convaincant lorsque la simplicité opérationnelle et une stratégie de moteur unique importent plus que la flexibilité au niveau de l’extension.
Conseil de réglage et opérations
- Gardez à l’esprit la localité des données: JSONB et les charges de travail vectorielles bénéficient lorsque les attributs chauds et les embeddings s’alignent avec l’indexation et la résidence en mémoire; l’analytique en mémoire de HeatWave prospère de manière similaire sur des données bien partitionnées.
- Validez les formes de plans sous charge: La requête parallèle et le JIT répondent aux distributions de données; testez avec des cardinalités et des biais proches de la production. Dans HeatWave, validez que les requêtes analytiques atteignent la couche intégrée et ne surchargent pas les threads OLTP.
- Exploitez judicieusement les niveaux gérés: Aurora PostgreSQL, AlloyDB et Hyperscale (Citus) étendent les enveloppes de performance sans abandonner les sémantiques de PostgreSQL; HeatWave sur AWS apporte le HTAP intégré là où de nombreux patrimoines MySQL fonctionnent déjà.
Modèles de transaction et sémantiques d’isolation
La correction et la gestion de la contention restent la base de l’OLTP. Bien que les implémentations spécifiques des niveaux d’isolation et les détails du gestionnaire de verrous ne soient pas énumérés ici, les architectes devraient:
- Modéliser explicitement la contention sur les lignes chaudes: Répliquez les modèles d’écriture de pointe et vérifiez la latence avec et sans fonctionnalités parallèles ou analyses adjacentes à HeatWave.
- Sondage de l’impact des requêtes longues: Validez que le JIT et l’exécution parallèle réduisent suffisamment le temps d’horloge pour éviter de bloquer l’OLTP; dans HeatWave, assurez‑vous que le déchargement analytique garde les threads transactionnels réactifs.
- Audit des interactions d’extension: Lors de la superposition de PostGIS, TimescaleDB, Citus ou pgvector, testez le comportement transactionnel sous vos défauts d’isolation. Les métriques spécifiques du moteur ne sont pas disponibles; fiez‑vous à la validation au niveau des charges de travail.
Conclusion
D’ici 2026, la ligne entre la pureté transactionnelle et l’ambition analytique s’est estompée à l’intérieur des moteurs relationnels open source grand public. PostgreSQL a resserré sa boucle d’exécution grâce à la requête parallèle, au partitionnement amélioré et au JIT, et a associé ces gains à l’approche riche en opérateurs et index‑friendly de JSONB pour les données semi‑structurées. MySQL a pris une voie différente, consolidant l’analyse MPP, le ML en moteur et la recherche vectorielle à l’intérieur de HeatWave pour répondre aux besoins HTAP et adjacents à l’IA sans multiplier les systèmes. Les deux philosophies étendent légitimement les limites de l’OLTP—l’une par un cœur extensible, priorisant les standards et un écosystème, l’autre par un service géré intégré qui garde tout en un seul endroit.
Points clés à retenir:
- Les avancées d’exécution de PostgreSQL réduisent la surcharge CPU et de l’exécuteur, élargissant l’ensemble des requêtes OLTP/analytique mixte qui fonctionnent acceptablement sans quitter le moteur.
- Les opérateurs et le support d’indexation de JSONB font des requêtes semi‑structurées des citoyens de première classe dans les plans de PostgreSQL.
- La pile intégrée MPP, ML et vectorielle de MySQL HeatWave offre une voie de consolidation pour les patrimoines MySQL‑first cherchant HTAP sans systèmes supplémentaires.
- Les niveaux gérés amplifient les philosophies du moteur: Aurora PostgreSQL, Hyperscale (Citus), et AlloyDB du côté Postgres; HeatWave du côté MySQL.
- Choisissez en fonction de la forme de charge de travail et des priorités opérationnelles: extensibilité et standards, ou intégration et consolidation.
Prochaines étapes concrètes:
- Répertoriez les modèles d’accès JSON et vectoriels; mappez-les à des prédicats pouvant être indexés ou à des fonctionnalités vectorielles intégrées.
- Exécutez des tests de charge comme en production avec les fonctionnalités de requête parallèle/JIT activées dans PostgreSQL et avec les analyses déportées sur HeatWave dans MySQL.
- Évaluez les niveaux gérés là où vous déployez aujourd’hui—Aurora/AlloyDB/Hyperscale pour Postgres et HeatWave pour MySQL—pour gagner de la marge sans changements architecturaux importants.
La trajectoire probable à partir d’ici est davantage de la même chose—mais mieux. L’écosystème d’extensions de PostgreSQL continuera à élargir l’ouverture pour des charges de travail spécialisées, tandis que les niveaux gérés axés sur la performance réduiront la latence. MySQL continuera à enrichir HeatWave, réduisant encore l’écart opérationnel entre OLTP, analyses et tâches adjacentes à l’IA. Pour les architectes, la question n’est plus “Un moteur relationnel peut-il gérer cela?” mais “Quelle philosophie de conception relationnelle s’aligne le mieux avec la façon dont nous construisons et opérons les logiciels?” ⚙️