본문 바로가기
MySql

MySQL 오류 SET SQL_BIG_SELECTS = 1 또는 SET MAX_JOIN_SIZE = #

by 베이스 공부 2020. 12. 8.
반응형

내 질문에 문제가 있습니다 ...

SELECT 
keywords.keyword,
keywords.keyid,
sources.s_title,
sources.s_disc,
sources.s_link,
sources.sourceid,
sources.s_link
FROM link_ks
INNER JOIN keywords ON link_ks.keyid = keywords.keyid
INNER JOIN sources ON link_ks.sourceid = sources.sourceid
INNER JOIN thumbsup_items ON link_ks.sourceid = thumbsup_items.name
WHERE link_ks.keyid = :keyid 
order by thumbsup_items.votes_up desc,thumbsup_items.votes_down asc,(thumbsup_items.votes_up+thumbsup_items.votes_down) desc

데이터베이스가 작을 때는 모든 것이 좋았지 만 데이터베이스가 커지면이 오류가 발생합니다.

 The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET
 SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay

하지만 내가 제거하면

 order by thumbsup_items.votes_up desc,thumbsup_items.votes_down asc,
(thumbsup_items.votes_up+thumbsup_items.votes_down) desc

문제가 해결되었습니다 ... 그러나 order by 는이 쿼리에 중요합니다 ...

이 쿼리를 작성하는 다른 방법이 있습니까? 아니면이 문제를 어떻게 해결할 수 있습니까?

 

해결 방법

 

그만큼 MAX_JOIN_SIZE SQL_BIG_SELECTS 를 사용하면 서버를 중단시키는 긴 쿼리를 실행할 수 없습니다.

쿼리를 실행하기 전에 다음을 사용하십시오.

 SET OPTION SQL_BIG_SELECTS = 1

또는 이것을 사용하십시오 :

SET SQL_BIG_SELECTS=1


 

참조 페이지 https://stackoverflow.com/questions/22630238

 

 

반응형

댓글