Кеширование (Caching)
Проблема N+1, как и любая другая ресурсозатратная операция, может быть временно решена с помощью кеширования.
Конечно, пример ниже скорее учебный — трудно представить разработчика, который умеет пользоваться кешем, но не знает про Eager Loading или ручную оптимизацию. Но допустим.
Обёртка необходимого кода в рельсовую функцию кеширования позволяет один раз вычислить результат и сохранить его на заданный период времени.
Все последующие запросы в течение этого периода будут возвращать значение из кеша, без повторных SQL-запросов или тяжёлых вычислений.
Кеширование не устраняет проблему, но помогает выиграть время, снизить нагрузку и стабилизировать систему до более правильной оптимизации.
Не забывайте: своевременная инвалидация кеша — одна из самых сложных задач в программировании.
Большая сила влечёт большую ответственность.
#словарь
Группа: @pro_ruby_on_rails_ru
Вопросы: @ilia_zykin
❤️ лайк 🔂 репост
Post #116
253

- ❤ 3
- 👍 2