Назад | Перейти на главную страницу

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

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

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

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

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

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

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

Одним из возможных решений может быть это Сценарий PowerShell для мониторинга и масштабирования отдельной базы данных SQL

Также решением может быть переход на Cosmos DB.