Давайте рассмотрим масштабирование на примере баз данных (Postgres) — как их можно масштабировать?
Начните с измерения нагрузки, оптимизации запросов и использования ресурсов текущего узла.
Читать ответПодготовка к интервью
79 вопросов по Postgres с технических собеседований
Что проверяют на интервью
На странице собраны вопросы по Postgres — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: postgres, database, backend.
Каталог
Начните с измерения нагрузки, оптимизации запросов и использования ресурсов текущего узла.
Читать ответШардирование PostgreSQL означает распределение разных частей данных между отдельными узлами, а не только партициями одной таблицы.
Читать ответMutex и RWMutex: эксклюзивная запись и параллельное чтение синхронизация потоков в многопоточных приложениях Mutex: монопольный доступ и блокировка всех операций RWMutex: отдельные режимы блокировки для чтения и…
Читать ответЗачем нужен контекст в gRPC-запросах и что происходит после его отмены Контекст как инструмент управления жизненным циклом запроса в Go Передача дедлайнов, сигналов отмены и метаданных между клиентом и сервером…
Читать ответРабота с HTTP в Go resp.Body представляет собой поток тела ответа Необходимо обязательно вызвать defer resp.Body.Close() В противном случае возникает утечка ресурсов, включая TCP-соединения TCP-соединения не…
Читать ответRedis представляет собой высокопроизводительное хранилище данных в формате ключ—значение Прямой поиск по значению не поддерживается, поскольку значения не индексируются Для такой задачи можно задействовать структуры…
Читать ответКак корректно отменять горутины, выполняющие долгие операции? для управления долгими горутинными операциями в Go используется контекст следует применять context.Context вместе с отменой (CancelFunc) context нужно…
Читать ответКак определить индексы, необходимые для оптимизации? Анализирую нагрузку: начинаю с наиболее часто выполняемых запросов и изучаю их планы выполнения с помощью EXPLAIN/ANALYZE Выявляю столбцы, используемые для…
Читать ответin-memory key-value store, применяемое для кэширования и работы баз данных горизонтально масштабируется с помощью шардинга (Cluster) Redis Cluster распределяет данные между узлами по слотам — всего предусмотрено 16384…
Читать ответКак устроен индекс в Postgres и чем B-Tree отличается от GIN Индекс в Postgres — это структура данных, которая ускоряет поиск записей в таблице B-Tree — сбалансированное дерево для поиска по равенству и диапазонам (>,…
Читать ответЧем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…
Читать ответИндекс — это структура данных, предназначенная для ускорения поиска в БД На практике его часто строят на основе B-дерева или B+-дерева B-дерево сохраняет балансировку и обеспечивает логарифмическую сложность поиска…
Читать ответ