Встречается на собеседованиях • сегодня

Какие знаешь способы оптимизации чтения БД

  1. Индексация – создание индексов на часто используемых полях для ускорения поиска.

    python
    # Пример создания индекса в SQLAlchemy
    class User(db.Model):
        __tablename__ = 'users'
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(100), index=True)  # Индекс на поле name
  2. Пагинация – разбивка данных на страницы для уменьшения нагрузки.

    python
    # Пример пагинации в Flask-SQLAlchemy
    users = User.query.paginate(page=1, per_page=10)
  1. Ленивая загрузка (Lazy Loading) – загрузка связанных данных только при обращении.

    python
    # SQLAlchemy: lazy='select' (по умолчанию)
    class Post(db.Model):
        comments = db.relationship('Comment', lazy='select')
  2. Жадная загрузка (Eager Loading) – предварительная загрузка связанных данных для избежания N+1 проблемы.

    python
    # SQLAlchemy: joinedload
    from sqlalchemy.orm import joinedload
    posts = Post.query.options(joinedload(Post.comments)).all()
  3. Кэширование – сохранение результатов запросов (Redis, Memcached).

  4. Оптимизация запросов – использование select вместо select *, избегание подзапросов.

  5. Репликация и шардинг – распределение нагрузки между серверами.

  6. Использование ORM-оптимизаций – например, bulk_insert, update вместо поштучных операций.

  7. Анализ запросов – инструменты типа EXPLAIN в PostgreSQL для выявления узких мест.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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