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), результат выполнения может быть некорректным.

Запустили Evolution free tier
для Dev & Test
Получить