Хотя я считаю, что у меня недостаточно данных для обеспечения 100% правильного ответа, но я могу добавить несколько советов.
Прежде всего, MYSQL глупо.Имейте это в виду и всегда переставляйте свои запросы так, чтобы большинство данных исключалось в начале.Например, если при последнем объединении количество результатов уменьшилось с 10 000 до 2 000, а у других нет, попробуйте поменять их местами, чтобы каждое последующее объединение работало с наименьшим возможным подмножеством данных.предложение WHERE.
Кроме того, объединения, как правило, медленнее, чем подзапросы.Я не знаю, соблюдаю ли я это правило или просто что-то в моем случае, но вы всегда можете попытаться заменить объединение или два подзапросом.
Хотя я полагаю, что это не совсемответьте на ваш вопрос, я надеюсь, что он хотя бы даст вам представление о том, с чего начать поиски оптимизаций.