Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Qu'est-ce que la séparation lecture/écriture ?

Dernière mise à jour :Aug 19, 2026

La séparation lecture/écriture achemine les requêtes d'écriture vers l'instance principale et les requêtes de lecture vers les instances en lecture seule via un seul point de terminaison de proxy de base de données. Utilisez cette fonctionnalité lorsque votre charge de travail comporte beaucoup plus de lectures que d'écritures et que l'instance principale ne peut plus gérer seule la charge de lecture.

Connectez votre application à un seul point de terminaison de proxy de base de données au lieu de gérer des points de terminaison distincts pour l'instance principale et chaque instance en lecture seule. Le proxy gère automatiquement tout le routage.

image

Quand utiliser la séparation lecture/écriture

La séparation lecture/écriture est adaptée si vous rencontrez l'une des situations suivantes :

  • Charges de travail intensives en lecture : votre application exécute beaucoup plus de requêtes SELECT que d'opérations INSERT, UPDATE ou DELETE.

  • Goulot d'étranglement sur l'instance principale : le CPU ou les E/S de l'instance principale sont saturés par le trafic de lecture, même si le volume d'écritures reste gérable.

  • Mise à l'échelle des lectures sans modifier les connexions : vous souhaitez augmenter la capacité de lecture sans modifier la logique de connexion de votre application.

Avantages

  • Point de terminaison unique, aucun code de routage : connectez-vous une fois au point de terminaison du proxy de base de données. Le proxy transfère les écritures vers l'instance principale et répartit automatiquement les lectures entre les instances en lecture seule ; il n'est pas nécessaire de maintenir des chaînes de connexion distinctes pour chaque instance.

  • Latence inférieure à celle d'un proxy personnalisé : la séparation lecture/écriture est intégrée à l'écosystème ApsaraDB RDS. Les données ne transitent pas par des couches intermédiaires supplémentaires, ce qui réduit la latence de réponse par rapport à la construction de votre propre proxy dans le cloud.

  • Poids de lecture et seuil de latence configurables : spécifiez un poids de lecture pour chaque instance afin de contrôler la répartition des requêtes de lecture. Définissez un seuil de latence de réplication pour exclure automatiquement du pool de lecture les instances en lecture seule dont le retard dépasse ce seuil.

  • Vérification automatique de l'état et basculement : le proxy surveille en continu chaque instance. Si une instance en lecture seule tombe en panne ou si sa latence de réplication dépasse le seuil défini, le proxy cesse de lui acheminer les lectures et redistribue ces requêtes aux instances saines. Une fois l'instance rétablie, le routage reprend automatiquement.

Créez au moins deux instances en lecture seule pour éviter un point de défaillance unique (SPOF).

Prérequis

Avant d'activer la séparation lecture/écriture, assurez-vous de disposer des éléments suivants :

  • Une instance ApsaraDB RDS for MySQL exécutant RDS High-availability Edition ou RDS Cluster Edition

  • Pour RDS High-availability Edition : au moins une instance en lecture seule créée (deux ou plus recommandées)

  • Pour RDS Cluster Edition : aucune instance en lecture seule n'est requise ; le nœud secondaire est accessible et traite uniquement les requêtes de lecture

La séparation lecture/écriture n'est pas prise en charge sur RDS Basic Edition .

Fonctionnement

Après avoir activé la fonctionnalité de proxy de base de données, la séparation lecture/écriture est automatiquement active ; aucune configuration supplémentaire n'est nécessaire. Accédez à Database Proxy dans le volet de navigation de gauche de la page instance details pour obtenir le point de terminaison du proxy de base de données (anciennement appelé terminal de proxy), puis mettez à jour la chaîne de connexion de votre application pour l'utiliser.

Routage des requêtes

Le proxy dédié achemine chaque requête en fonction de son type :

Instance RDS principale

  • Instructions d'écriture : INSERT, UPDATE, DELETE, SELECT FOR UPDATE

  • Toutes les opérations DDL (création ou suppression de bases de données/tables, modifications de schéma et d'autorisations)

  • Toutes les requêtes au sein des transactions (sauf si la fonctionnalité de fractionnement des transactions est activée)

  • Transactions non en lecture seule avec un niveau d'isolation Repeatable Read (RR) ou supérieur

  • Fonctions définies par l'utilisateur et procédures stockées

  • Requêtes multi-instructions

  • Tables temporaires créées explicitement

  • SELECT last_insert_id()

  • Requêtes et mises à jour de variables utilisateur

  • Instructions KILL en SQL (différentes des commandes KILL), LOCK TABLE, UNLOCK TABLE

  • Instructions FLUSH y compris FLUSH TABLES WITH READ LOCK (FTWRL)

  • SAVEPOINT

Instance RDS principale ou instance RDS en lecture seule

  • Instructions SELECT en dehors des transactions

  • START TRANSACTION READ ONLY

Toutes les instances RDS

  • Mises à jour des variables système

  • Instructions USE

  • SHOW PROCESSLIST — le proxy dédié agrège et renvoie les processus de toutes les instances

  • NAMED PREPARE

  • COM_CHANGE_USER, COM_QUIT, COM_SET_OPTION

Comportement des attributs lecture/écriture

Le point de terminaison du proxy de base de données prend en charge deux modes d'attributs lecture/écriture. Le tableau ci-dessous montre le comportement de chaque mode dans des conditions normales et lorsque les instances en lecture seule deviennent indisponibles.

Attributs lecture/écriture Méthode de pondération des lectures Poids de l'instance principale Normal Après la suppression de la dernière instance en lecture seule Lorsque toutes les instances en lecture seule sont défectueuses
Read-only Automatique ou Personnalisé Ne peut pas être spécifié Principale : aucune requête. Proxy : requêtes de lecture uniquement. Principale : aucune requête. Proxy : erreur de connexion. Principale : aucune requête. Proxy : erreur de connexion.
Read and write Automatique 0 (voir Règles d'allocation du poids de lecture par le système) Principale : requêtes d'écriture uniquement. Proxy : requêtes de lecture et d'écriture. Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture. Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture.
Personnalisé Supérieur à 0 Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture. Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture. Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture.
0 Principale : requêtes d'écriture uniquement. Proxy : requêtes de lecture et d'écriture. Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture. Principale : requêtes de lecture et d'écriture. Proxy : requêtes de lecture et d'écriture.
Aucune requête sur l'instance principale : l'instance principale n'est pas impliquée dans le transfert des requêtes en lecture seule.
Erreur de connexion : une erreur de connexion est renvoyée lorsque le point de terminaison du proxy ne dispose d'aucune instance disponible pour le routage.
En mode Read and write avec un poids principal défini sur 0, les requêtes de lecture sont dirigées par défaut vers les instances en lecture seule. Exceptions : toutes les instances en lecture seule sont défectueuses, une indication forcée est spécifiée ou le fractionnement des transactions est activé.
Pour plus de détails sur la configuration, consultez Configurer les attributs lecture/écriture et les poids de lecture .

Étapes suivantes

Après avoir activé la séparation lecture/écriture, vous pouvez :

Références