0
나는 레코드를 추출해야하는 간단한 테이블을 가지고 있습니다.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 기능입니다. 기본적으로 where 문에 포함하는 모든 열에 인덱스를 추가하십시오. 문제의 함수에서 쿼리를 보지 않고는 더 이상 도움을 줄 수 없습니다. – raveren
괜찮습니다. 나는 HAVING 조항을 잊어 버릴 수 있습니다. 이제 효과가 있습니다. 감사! – Ivan