huge performance issue with ActiveRecord::Base exists?

I was just running a relative simple exists? query:

Page.exists?(["id > ?",i])

which equates to

  SELECT COUNT(*) FROM `pages` WHERE (id > 1400000) LIMIT 1

You would think with a COUNT and a LIMIT 1, that things would be really
fast, but its SUPER slow, its trying to count all the records greater
than 1400000.

This is N times faster:

  SELECT * FROM `pages` WHERE (id > 1400000) LIMIT 1

Do you guys think this needs to be changed, or not worth changing
COUNT(*) to just * even though its a "LIMIT 1" ?

COMPLETELY IGNORE this "issue", this was caused by an old overwrite of
the exists? function that I had from years ago.

MY BAD!

I was just running a relative simple exists? query:

Page.exists?(["id > ?",i])

which equates to

SELECT COUNT(*) FROM `pages` WHERE (id > 1400000) LIMIT 1

You would think with a COUNT and a LIMIT 1, that things would be really
fast, but its SUPER slow, its trying to count all the records greater
than 1400000.

This is N times faster:

SELECT * FROM `pages` WHERE (id > 1400000) LIMIT 1

Do you guys think this needs to be changed, or not worth changing
COUNT(*) to just * even though its a "LIMIT 1" ?

Which version of rails are you running? I've looked at the source of
edge, 2-1-stable and 2-0-stable and for all those versions exists does
not appear to use count. Are you sure the query is coming from there?

Fred

Fred, this was my mistake read, the post above yours.