0
나는 이런 식으로 뭔가 간다 쿼리가 있습니다MySQL은 이전 부분의 쿼리를 캐시합니까?
SELECT t1, t2,
IF(MATCH(t2) AGAINST ('input*' IN BOOLEAN MODE), 10, 0) AS matches,
IF(t2 LIKE '%input%', 2, 0) AS similar
FROM tbl
WHERE t2 LIKE '%input%'
ORDER BY (matches + similar) DESC
LIMIT 5
쿼리가 잘 작동을하지만 난 여부 MySQL이 t2의 두 번 LIKE '% 입력 %'인지 여부를 확인하고 있습니다 약 걱정하는 부분, 또는 첫 번째 결과를 캐시하면 (멋지다!).
감사합니다.
매우 흥미 롭습니다. 조금 실망스럽지 않으면, ㅎ. 어쩌면 앞으로는 쿼리를 더 잘 수행 할 수있는 방법을 찾을 것입니다.하지만 지금은 이중 LIKE 비교기가 작업을 빨리/충분하게 수행하고있는 것처럼 보입니다. 검색 제안 상자이며 응답은 즉시입니다. – felamaslen
하지만, 필자는 'IF (t2 LIKE'% input % ', 2, 0)'가 ** 항상 ** ** ** 2 ** 일 것입니다. 그 상태! –
예, 틀림없이 그것은 다소 나쁜 예입니다. 내가하는 정확한 쿼리가 아니에요, 그 자리에서 그 생각을했습니다. – felamaslen