Назад к вопросам
Middle+
3
Есть таблица с миллионами записей, но запросы почти всегда за последние одну-две недели. Что бы сделал для оптимизации?
Компании, где спрашивали
Voximplane
Ответ от нейросети
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');
Так запросы с фильтром по дате будут работать быстрее, так как будут обращаться только к нужным партициям.