- tocdepth
2
RDS for MySQL Database Proxy
Database Proxy (Read/Write Splitting) — функция, которая позволяет автоматически распределять запросы на чтение и запись между мастером MySQL и Read-репликами.
Функция подходит для изоляции рабочей нагрузки и поддерживает до четырех прокси-серверов БД.
Правила распределения запросов между master-нодой и Read-репликами:
Если у инстанса RDS for MySQL отсутствует Read-реплика, все запросы на чтение и запись будут перенаправляться на master-ноду.
Если у инстанса RDS for MySQL есть добавленная Read-реплика, запросы на запись будут направляться на master-ноду, а запросы на чтение — на Read-реплику.
При использовании функции балансировки нагрузки экземпляр Database Proxy распределяет запросы между несколькими Read-репликами с использованием политики планирования, которая зависит от нагрузки реплик.
Database Proxy поддерживает следующие версии MySQL:
5.6 — 5.6.51.7 или младше
5.7 — 5.7.37.2 или младше
8.0 — все младшие версии
Примечание
Чтобы избежать некорректной работы сервиса RDS, не создавайте учетную запись с названием «rdsProxy». rdsProxy — внутренняя учетная запись для Database Proxy, которая создается автоматически при включении Read/Write Splitting.
Функциональные ограничения:
Если включена функция Read/Write Splitting и был удален основной инстанс RDS for MySQL, его Read-реплики также будут удалены, а разделение на чтение и запись будет отключено.
Функция Read/Write Splitting не поддерживает плагин аутентификации
caching_sha2_password identity authentication
для RDS for MySQL версии 8.0.После включения функции Read/Write Splitting нельзя изменить следующие параметры master-ноды и Read-реплик: порты базы данных, группы безопасности, плавающие IP-адреса.
Функция Read/Write Splitting не поддерживает SSL.
Функция Read/Write Splitting не поддерживает протоколы сжатия.
Функция Read/Write Splitting не поддерживает уровень изоляции READ UNCOMMITTED.
Если используется multi-statements, то каждый вложенный запрос будет перенаправляться в master-ноду. Чтобы восстановить разделение Read/Write Splitting, отключите соединение между вашим приложением и IP-адресом функции Read/Write Splitting и установите соединение снова.
Когда используется IP-адрес Read/Write Splitting, функция LAST_INSERT_ID() может применяться только в транзакциях.
При использовании пользовательских переменных запросы, содержащие эти переменные, направляются в master-ноду.
Database Proxy не поддерживает чтение и запись в столбец таблицы, содержащий более 16 МБ данных.
При использовании сервиса Database Proxy размер SQL-запроса CONCAT() не может превышать 100 МБ, чтобы снизить нагрузку на БД.
Синтаксические ограничения:
Функция Read/Write Splitting направляет frontend-запросы к нодам backend-инстанса согласно настроенному весу нагрузки. По этой причине некоторые SQL-запросы могут иметь разные результаты при многократном выполнении.
При использовании адреса функции Read/Write Splitting:
Результаты выполнения команды show processlist являются непоследовательными.
Операция kill query не поддерживается.
Команды show errors и show warnings не поддерживаются.
Если сохраненные операции и функции зависят от пользовательских переменных (@variable), результат выполнения может быть некорректным.
для Dev & Test