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" ?
on 2008-10-12 03:19
on 2008-10-12 03:22
COMPLETELY IGNORE this "issue", this was caused by an old overwrite of the exists? function that I had from years ago. MY BAD!
on 2008-10-12 03:26
On Oct 12, 12:19 am, Aryk G. <firstname.lastname@example.org> wrote: > 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
on 2008-10-12 03:28
Fred, this was my mistake read, the post above yours.