Ключевые понятия для понимания разделения баз данных
Разделение баз данных на несколько серверов означает разделение данных на несколько серверов баз данных и обычно используется для масштабирования. Однако при этом возникают значительные операционные и инфраструктурные сложности, которых следует избегать до тех пор, пока это не станет абсолютно необходимым.
Подходы, позволяющие отложить шардинг
Вертикальное масштабирование: Использование более мощных отдельных серверов баз данных - больше процессоров, памяти, хранилищ и пропускной способности каналов ввода-вывода. Это гораздо проще в управлении, чем шардинг, и при этом позволяет значительно расширить систему.
Оптимизация SQL: Настройка SQL-запросов и схемы базы данных для достижения максимальной производительности на одном сервере. Требуются соответствующие индексы, эффективный SQL и т.д.
Кэширование: использование кэшей in-memory, например Redis, для снижения нагрузки на базу данных за счет отсутствия необходимости обращаться к ней при каждом запросе.
Реплики чтения + балансировщик нагрузки: Добавляет горизонтальную масштабируемость чтения без полной сложности шардинга. Направляет чтение между репликами.
Эти подходы к оптимизации должны быть исчерпаны перед шардингом, учитывая его сложность.
#db
👉 [club16108331|@itmozg]