Если такой опыт был, опишите путь от симптома к плану запроса и изменению: частота, длительность, чтения, оценки строк и join strategy. Не стоит объявлять JOIN тяжёлым только по его наличию.
Использовали ли вы профилирование запросов, чтобы находить узкие места, например тяжёлые JOIN-операции?
Если такой опыт был, опишите путь от симптома к плану запроса и изменению: частота, длительность, чтения, оценки строк и join strategy. Не стоит объявлять JOIN тяжёлым только по его наличию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Если такой опыт был, опишите путь от симптома к плану запроса и изменению: частота, длительность, чтения, оценки строк и join strategy. Не стоит объявлять JOIN тяжёлым только по его наличию.
Сначала находят действительно значимые запросы, затем сравнивают план и фактическое выполнение на безопасном окружении. Проверяют селективность, статистику, индексы, лишние строки и N+1. EXPLAIN ANALYZE выполняет запрос, поэтому на production его запускают осознанно, особенно для изменений данных. После оптимизации измеряют эффект на сопоставимой нагрузке и стоимость записи. Если практики не было, можно объяснить подход, не придумывая достигнутые ускорения.