Это фрагмент моего запроса:
and (
ADDR_FULLTEXT
like upper(:streets1)
)
Всякий раз, когда я выполняю запрос, частью которого он является, он выполняется примерно за 0,05 секунды.Это потрясающе!Но когда я делаю следующее:
and (
ADDR_FULLTEXT
like upper(:streets1)
AND
ADDR_FULLTEXT
like upper(:streets2)
)
, это приводит к 20-секундному запросу.Почему такая большая разница и как ее можно решить?
Что в основном выполняет остальная часть запроса, это выбор нескольких полей в представлении (ADDR_FULLTEXT - одно из них).Там также есть еще один, как этот.
Может быть, я делаю что-то действительно неправильно, и, возможно, для этого есть лучший способ сделать это.
К вашему сведению: цикл PHP генерирует этот запрос, который получается в результатепоисковый запрос.Каждое слово анализируется в этом запросе, что приводит к 1 или более одинаковых «лайков» в 1 запросе.Другой лайк генерируется таким же образом, но это всегда 1 лайк, никогда больше, никогда меньше.