Каковы потенциальные ловушки установки enable_nestloop
в off
?
Это означает, что вы никогда не сможете эффективно использовать индексы.
И кажется, что вы не используете их сейчас.
Запрос, подобный следующему:
SELECT u.name, p.name
FROM users u
JOIN profiles p ON p.id = u.profile_id
WHERE u.id = :id
, скорее всего, будет использовать NESTED LOOPS
с INDEX SCAN
на user.id
и INDEX SCAN
на profile.id
, если вы построили индексы для этих полей.
Запросы с фильтрами низкой избирательности (то есть запросы, которым требуется больше чем 10%
данных из таблиц, которые они используют) получат выгоду от MERGE JOINS
и HASH JOINS
.
Но запросы, подобные приведенному выше, требуют NESTED LOOPS
для эффективной работы.
Если вы разместите здесь свои запросы и определения таблиц, возможно, многое будет сделано для повышения эффективности индексов и запросов.