С каким объемом данных вы работали в последнем проекте?

«С каким объемом данных вы работали в последнем проекте?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В последнем проекте на PostgreSQL общий объем данных составлял около 500 ГБ. Основные таблицы:

Таблица Примерный объем записей Назначение
users ~10 млн Данные пользователей
transactions ~150 млн Финансовые операции
action_logs ~1 млрд Логирование действий

Примененные методы оптимизации:

  1. Индексация: Создание составных индексов для частых запросов.
    @Entity
    @Table(name = "transactions", indexes = {
        @Index(name = "idx_user_created", columnList = "user_id, created_at")
    })
    public class Transaction { ... }
  2. Партиционирование: Таблица action_logs была разделена по диапазонам дат (PARTITION BY RANGE (created_at)).
  3. Репликация: Настройка реплик для чтения, чтобы разгрузить primary-сервер.

Нагрузка составляла до 5k RPS, средний размер строки — 1-2 КБ.