Sobes.tech
Back to questions
Middle+
4

Есть таблица с миллионами записей, но запросы почти всегда за последние одну-две недели. Что бы сделал для оптимизации?

Companies where asked
Voximplane

Answer from AI

sobes.tech AI

Для оптимизации запросов к таблице с миллионами записей, когда запросы почти всегда за последние 1-2 недели, можно:

  • Использовать партиционирование таблицы по дате, чтобы запросы сканировали только актуальные партиции.
  • Создать индекс по полю даты, чтобы ускорить фильтрацию.
  • Кэшировать результаты частых запросов, если данные не меняются часто.
  • Рассмотреть использование специализированных хранилищ для временных данных (например, time-series базы).

Пример партиционирования в PostgreSQL:

CREATE TABLE events (
    id SERIAL PRIMARY KEY,
    event_time TIMESTAMP NOT NULL,
    data JSONB
) PARTITION BY RANGE (event_time);

CREATE TABLE events_2024_06 PARTITION OF events
    FOR VALUES FROM ('2024-06-01') TO ('2024-07-01');

Так запросы с фильтром по дате будут работать быстрее, так как будут обращаться только к нужным партициям.