В таблице диалогов 80 миллионов сообщений, а аналитический запрос для набора оценки выполняется 25 минут и иногда возвращает дубликаты пар вопрос-ответ. Что исправите первым и почему?

Сначала исправьте определение пары вопрос–ответ и причину дубликатов, иначе быстрый запрос даст неверный набор оценки. Затем оптимизируйте план на корректной выборке.

Короткий ответ

Что ответить на собеседовании

Сначала исправьте определение пары вопрос–ответ и причину дубликатов, иначе быстрый запрос даст неверный набор оценки. Затем оптимизируйте план на корректной выборке.

Подробный разбор

Ответ с пояснениями

Сначала исправьте определение пары вопрос–ответ и причину дубликатов, иначе быстрый запрос даст неверный набор оценки. Затем оптимизируйте план на корректной выборке.

Проверьте ключи диалога, порядок сообщений, повторные события и связи one-to-many в JOIN. Не маскируйте ошибку случайным DISTINCT. Зафиксируйте правило pairing с детерминированным tie-breaker и проверьте примеры вручную. После этого анализируйте план, фильтруйте нужные даты и диалоги до соединений, добавляйте подходящие индексы либо инкрементальную витрину; полный тяжёлый запрос сначала не запускайте повторно без необходимости.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее