У меня есть простая таблица, где мне нужно извлечь некоторые записи. Проблема заключается в том, что функция оценки является очень хранимая процедура отнимает много времени, так что я не должен называть его дважды, как в этом предложении:MySQL оптимизировать предложение
SELECT *, slow_sp(row) FROM table WHERE slow_sp(row)>0 ORDER BY dist DESC LIMIT 10
Сначала я думал, что в оптимизируют, как это:
SELECT *, slow_sp(row) AS value FROM table WHERE value>0 ORDER BY dist DESC LIMIT 10
Но это не работает, потому что «значение» не обрабатывается, когда вычисляется предложение WHERE.
Какую идею оптимизировать? Благодарю.
slow_sp возвращает значение от 0 до 100 в соответствии с «значением» слова в текстовом корпусе. В основном доступ к массиву предварительно просчитанных значений для определения значения int. Я попробую значение HAVING. Благодарю. – Ivan
Это функция MySQL, правильно? В основном добавьте индексы для каждого столбца, в который вы включаете в себя инструкции. Я не могу больше помочь, не видя запроса в рассматриваемой функции. – raveren
Это нормально, как раритет. Я забыл, что предложение может помочь. Теперь он работает. Благодаря! – Ivan