Quand NE PAS partitionner horizontalement
Les répliques de lecture, le partitionnement et des machines plus puissantes résolvent la plupart des problèmes de montée en charge : sachez quand le partitionnement horizontal est une mauvaise solution.
Quand NE PAS partitionner horizontalement est une leçon SQL Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage SQL Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours SQL Academy comprend 4 leçons au total.
Le partitionnement horizontal en dernier recours
Le partitionnement horizontal multiplie la complexité opérationnelle. La plupart des applications n'en ont jamais besoin. Commencez par épuiser les solutions plus simples.
Étape 1 : mise à l'échelle verticale
Utilisez une machine plus puissante. Les instances modernes du cloud peuvent facilement gérer :
- 128 cœurs
- 1 TB de RAM
- 50 000 IOPS sur NVMe
Cela représente de 100 000 à 500 000 QPS sur un seul nœud PostgreSQL. La plupart des applications tiennent aisément sur une telle machine.
Étape 2 : réplicas de lecture
Si les lectures dominent, ajoutez des réplicas. Un primary et 3 réplicas peuvent traiter 10 fois plus de lectures.
Étape 3 : mise en cache
Placez Redis ou memcached devant les requêtes très consultées. C'est souvent le gain le moins coûteux.
Étape 4 : partitionnement
Le partitionnement déclaratif natif de PG résout le problème de la « table trop volumineuse » sur un seul serveur. Il est souvent 100 fois plus simple que le partitionnement horizontal.
Étape 5 : séparation des services
Déplacez les différents domaines vers des bases de données distinctes — base de données des commandes, base de données des utilisateurs, base de données analytique. Chacune peut être mise à l'échelle indépendamment.
Étape 6 : déporter l'analytique
Requêtes OLTP → PostgreSQL. Requêtes analytiques → ClickHouse / BigQuery / Snowflake. De nombreux projets où l'on pense « nous devons effectuer un partitionnement horizontal » sont en réalité des projets où « l'analytique sature notre OLTP ».
Puis, éventuellement, le partitionnement horizontal
Si vous manquez toujours de capacité avec 50 TB de données uniquement OLTP et que la charge exige plus d'écritures qu'un seul serveur ne peut en gérer, commencez à planifier le partitionnement.
Coût opérationnel du partitionnement horizontal
- Davantage de serveurs à surveiller et à mettre à jour
- Les sauvegardes entre partitions doivent être coordonnées
- Les requêtes inter-partitions sollicitent le code de l'application
- Le repartitionnement est difficile
- Les partitions surchargées exigent un rééquilibrage actif
La stratégie « partitionner tard »
Construisez votre système avec des schémas compatibles avec le partitionnement (incluez toujours tenant_id, n'utilisez jamais de compteurs à incrémentation globale) afin que vous CAN effectuer le partitionnement plus tard. Mais ne partitionnez pas avant d'y être contraint.
Schéma adapté au partitionnement horizontal
Même si vous restez sur un seul nœud, concevez votre système comme si vous pouviez le partitionner :
- tenant_id sur chaque ligne
- UUID ou identifiants distribués (pas d'auto-incrémentation)
- Aucune séquence globalement unique
- Clés étrangères dans le périmètre d'un locataire
Reconnaître le compromis
Le partitionnement horizontal augmente la capacité au prix d'une réduction des possibilités. Les JOIN, les transactions et les requêtes deviennent plus difficiles. Assurez-vous que le gain en vaut la peine.
Récapitulatif
Le partitionnement horizontal résout un problème réel, mais c'est une solution lourde.
- Commencez par la mise à l'échelle verticale
- Ajoutez des réplicas de lecture et une mise en cache
- Effectuez un partitionnement avant le partitionnement horizontal
- Déportez l'analytique d'OLTP
- Concevez votre système pour permettre le partitionnement, mais reportez sa mise en œuvre
Vérification rapide
Vous envisagez le partitionnement horizontal parce que les requêtes OLTP sont lentes. Avant de partitionner horizontalement, quelle étape a le plus de chances de vous aider ?
Apprends SQL avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 46
- Leçons
- 183
Questions Fréquemment Posées
La leçon « Quand NE PAS partitionner horizontalement » est-elle gratuite ?
Oui — le texte complet de « Quand NE PAS partitionner horizontalement » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours SQL Academy, passe à CoddyKit PRO. Le cours SQL Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Quand NE PAS partitionner horizontalement » ?
Les répliques de lecture, le partitionnement et des machines plus puissantes résolvent la plupart des problèmes de montée en charge : sachez quand le partitionnement horizontal est une mauvaise solut… Tu pratiques SQL Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer SQL Academy ?
Aucune expérience préalable n'est requise. SQL Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Quand NE PAS partitionner horizontalement » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon SQL Academy ?
Oui. Chaque leçon SQL Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Stratégies de partitionnement horizontal : intervalle, hachage et annuaire
- Requêtes inter-partitions : le problème le plus complexe
- Citus et Postgres distribué
- Quand NE PAS partitionner horizontalement