Встречается на 1% собеседований по Python

Как предотвратить кэширование базы

Для предотвращения кэширования базы данных можно использовать несколько подходов:

  1. На уровне ORM (например, SQLAlchemy):
python
from sqlalchemy.orm import query_expression
session.query(User).options(query_expression(User)).all()
  1. Использование expire_on_commit:
python
session = sessionmaker(autocommit=False, autoflush=False, expire_on_commit=True)
  1. Ручное управление кэшем:
python
session.expire_all()  # сброс всего кэша
session.expire(some_object)  # сброс кэша для конкретного объекта
  1. На уровне запросов:
python
result = session.query(User).execution_options(compiled_cache=None).all()

Для Django можно использовать:

python
from django.db.models import F
User.objects.annotate(no_cache=F('id')).all()

Важно понимать, что полное отключение кэширования может снизить производительность. Лучше использовать точечное управление кэшем там, где это действительно необходимо.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы