Azure SQL. Масштабирование базы данных для повышения производительности (только чтение)

Azure SQL. Масштабирование базы данных для повышения производительности (только чтение)

У нас есть база данных, которая используется довольно интенсивно (почти 100% запросов — выборки), и теперь база данных становится узким местом.

Мы искали решение, которое позволило бы нам масштабировать эту базу данных (горизонтально) и распределять нагрузку между запросами по нескольким экземплярам.

В идеальном сценарии нам нужен способ динамического добавления и удаления экземпляров (аналогично тому, как можно масштабировать экземпляры веб-приложения Azure).

На данный момент лучшее решение, которое я нашел, это «масштабирование чтения с использованием реплик, доступных только для чтения»:https://docs.microsoft.com/en-us/azure/azure-sql/database/read-scale-out. И это выглядит как идеальное решение, единственная проблема в том, что я не понимаю, как можно добавить туда больше реплик?

решение1

СУРБД, как правило, не может масштабироваться горизонтально без сегментирования данных каким-либо образом. Кроме того, данные в СУРБД должны быть нормализованы, что не подходит для каждого набора данных.

Еще один момент, который следует отметить, заключается в том, что динамическое масштабирование отличается от автоматического масштабирования. Автоматическое масштабирование — это когда сервис масштабируется автоматически на основе критериев, тогда как динамическое масштабирование позволяет выполнять ручное масштабирование с минимальным временем простоя.

Одним из возможных решений может быть следующее:Скрипт PowerShell для мониторинга и масштабирования одной базы данных SQL

Решением также может стать миграция на Cosmos DB.

Связанный контент