Harinder
Harinder

Reputation: 1257

Error SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=#

I am facing a problem with my query ...

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

Every thing was good when database was small but as database become big I am getting this error

 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

But when I remove

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

Problem gets solved ... But order by is important for this query ...

is there any other way to write this query or how can I solve this problem ??

Upvotes: 3

Views: 17901

Answers (2)

Bill Warren
Bill Warren

Reputation: 392

for those, like me, who are seeing this for the first time...

this =>

$setupMySql = mysql_query(" SET OPTION SQL_BIG_SELECTS = 1 " ) or die('Cannot complete SETUP BIG SELECTS because: ' . mysql_error());

Upvotes: 1

echo_Me
echo_Me

Reputation: 37253

the MAX_JOIN_SIZE and SQL_BIG_SELECTS won't let you run long queries which will hang the server.

Use this before running the query:

 SET OPTION SQL_BIG_SELECTS = 1

or use this:

SET SQL_BIG_SELECTS=1

chek this

Upvotes: 5

Related Questions