Вы можете использовать EXPLAIN
, чтобы узнать, как возможно, что запрос выполняется так медленно.
MySQL на самом деле не любит вложенные подвыборы, поэтому, вероятно, происходит то, что он выполняет и сортирует на диске, чтобы получить минимальное и максимальное значения и не может повторно использовать результаты.
Переписывание в качестве объединений, вероятно, поможет.
Если вы ищете быстрое решение, попробуйте:
SET @temp1 =
(
SELECT MIN(IdQuestionLaw)
FROM question_law
WHERE IdQuestion = 236 AND IdQuestionLaw > 63
)
SET @temp2 =
(
SELECT MAX(IdQuestionLawVersion)
FROM question_law_version
WHERE IdQuestionLaw = @temp1
)
SELECT IdLawVersionValidFrom
FROM question_law_version
WHERE IdQuestionLawVersion = @temp2