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

Как оптимизировать таблицу с нагрузкой сто тысяч записей в день для ускорения недельных выборок\

Для оптимизации таблицы с высокой нагрузкой:

  1. Индексы – добавь составные индексы на поля, используемые в WHERE, JOIN, ORDER BY. Например:

    sql
    CREATE INDEX idx_date_category ON records(created_date, category);
  2. Партиционирование – разбей таблицу по дате (RANGE или LIST):

    sql
    PARTITION BY RANGE (YEAR(created_date)) (...)
  1. Денормализация – если запросы сложные, добавь вычисляемые поля (суммы, счетчики).

  2. Материализованные представления – предрассчитай агрегаты за неделю:

    sql
    CREATE MATERIALIZED VIEW weekly_stats AS 
    SELECT WEEK(created_date), COUNT(*) FROM records GROUP BY 1;
  3. TTL (Time-To-Live) – архивируй старые данные (>3 месяцев) в отдельную таблицу.

  4. Кэширование – Redis/Memcached для частых запросов.

Для InnoDB настрой innodb_buffer_pool_size (70-80% RAM). Мониторь медленные запросы через slow_query_log.

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

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

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

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