ПроектированиеОбновлено 01.09.202612 мин

Общая схема (Shared schema) или отдельная база на арендатора (database per tenant)

Общая схема или отдельная база на арендатора: практическая модель данных, варианты реализации, ограничения целостности и безопасная эволюция схемы.

Общая схема (Shared schema) или отдельная база на арендатора (database per tenant)
Общая схема (Shared schema) или отдельная база на арендатора (database per tenant)

Общая схема или отдельная база на арендатора: практическая модель данных, варианты реализации, ограничения целостности и безопасная эволюция схемы.

Коротко: Общая схема (Shared schema) или отдельная база на арендатора (database per tenant) нужно рассматривать внутри полного жизненного цикла данных: запись, чтение, конкурентный доступ, изменение схемы, наблюдаемость, резервное копирование и восстановление.

Место в архитектуре данных

Рабочая система (production) обычно разделяет источник истины, аналитические копии, поисковые индексы, кеш и архив. Для каждой копии должны быть определены владелец, задержка обновления, допустимая потеря данных и процедура полного пересоздания.

Как проверять на практике

Опишите жизненный цикл сущностей для темы «общая схема или отдельная база на арендатора», владельца каждого поля, уникальные ограничения и правила удаления. После этого проектируйте индексы из запросов, а не из списка колонок.

  1. Опишите операции. Что записывается, читается и изменяется в одной транзакции.
  2. Оцените данные. Объём, рост, кардинальность, перекос ключей и сроки хранения.
  3. Зафиксируйте гарантии. Согласованность, RPO, RTO, допустимая задержка репликации (lag) и поведение при отказе.
  4. Соберите воспроизводимый тест. Версия СУБД, конфигурация, SQL, планы и метрики до изменения.
  5. Подготовьте эксплуатацию. Мониторинг, резервные копии, обновления, права, эксплуатационная инструкция (runbook) и ответственные.

Практический пример

Для сценария «общая схема или отдельная база на арендатора» создают минимальную схему, загружают репрезентативные данные и проверяют ключевые запросы, изменения и конкурентную запись.

Что измерять

СлойПроверкаКрасный флаг
Запросыp50, p95, p99, планы, просмотренные строки (rows examined) и попадания в буфер (buffer hits)решение принято по средней задержке
Записьпропускная способность (throughput), блокировки (locks), WAL, уплотнение (compaction) и усиление записи (write amplification)нагрузка тестируется одним клиентом
Надёжностьвосстановление (restore), переключение при отказе (failover), задержка репликации (lag), RPO и RTOреплика считается резервной копией
Продуктчисло нарушений целостности, размер строки и индексов, задержка основных операций, сложность миграцийучтена инфраструктура, но не сопровождение

Ограничения и типичные ошибки

Схема, удобная для первого экрана, может плохо выдерживать историю, аудит, повторную обработку и рост числа арендаторов.

Важно: название технологии не гарантирует свойства системы. Результат зависит от версии, схемы, индексов, конфигурации, оборудования, драйверов и реального профиля нагрузки.

Чек‑лист готовности

  • определён источник истины
  • схема поддерживает бизнес-инварианты
  • есть репрезентативный нагрузочный тест
  • проверены восстановление (restore) и переключение при отказе (failover)
  • права приложения минимальны
  • известны стоимость владения и условия пересмотра решения
Оценки читателей

Отзывы и практический опыт

Пока нет опубликованных отзывов. Можно первым рассказать, насколько материал помог в проекте.