On May 13, 11:46 am, a...@pythoncraft.com (Aahz) wrote: > In article <xns9c09513903e8frtwfreenetremovec...@216.196.109.145>, > Rob Williscroft <r...@freenet.co.uk> wrote: > > > > >Aahz wrote innews:guao50$1j...@panix3.panix.comin comp.lang.python: > >> In article <xns9c08e179b66d8rtwfreenetremovec...@216.196.109.145>, > >> Rob Williscroft <r...@freenet.co.uk> wrote: > > >>>db.execute( ''' > >>> update "sessions" set "uid" = ? > >>> where "uid" = ? > >>> and exists( > >>> select * from "users" where "uid" = ? > >>> ) > >>> ''', > >>> (v['uid'],s.SID, v['uid']) > >>> ) > > >> This will be more efficient if you do "select uid from users". > > >What will be more efficient ? > > >Do you mean the "select * ..." or do you want to take the exists > >sub-query out and put it in a python if ? > > "select uid" will be more efficient than "select *", although I suppose > I could be wrong about that given how little I know about current query > optimizers.
My take is that it won't matter what you select if the optimiser is smart enough; something that requires minimal resources to produce is indicated in case the optimiser is dumb: ... exists (select 1 from ... ) -- http://mail.python.org/mailman/listinfo/python-list