Масштабирование за пределами стандартных индексов Обработка больших объемов трафика на чтение требует выхода за рамки стандартного последовательного сканирования в Postgres. Используя кастомные составные индексы в сочетании со стратегиями сквозного кэширования через Redis, базы данных могут обрабатывать запросы за доли миллисекунды.
Составные индексы в действии Когда запросы выполняют поиск по нескольким критериям (например, ID пользователя, статус и дата создания), поиск по одноколоночному индексу работает неэффективно. Создание составного индекса решает эту проблему:
sql
CREATE INDEX idx_orders_user_status_created
ON orders (user_id, status, created_at DESC);Использование Redis Pipeline Избегайте лишних сетевых запросов к серверу, выполняя пакетные обновления кэшированных записей базы данных:
typescript
import Redis from "ioredis";async function batchCacheUsers(users: { id: string; name: string }[]) { const pipeline = redis.pipeline(); for (const user of users) { pipeline.set(`user:${user.id}`, JSON.stringify(user), "EX", 3600); } await pipeline.exec(); } ```
