On 5/8/08, Barbara Weinberg <[EMAIL PROTECTED]> wrote:
> This is my query:
>  select phn,random() as ran from demographics where sex='F' and dob >=
>  19400401 and dob <=19450331 order by ran limit 500
>  The original table has 7 million records and I am trying to select a subset
>  of about 40000 and sort them in random order. I am doing this to get a
>  random 500 records.

I don't know what the 40000 is doing there, but I would first select
all the records, and then shuffle them in memory outside the db.

As I showed in my Perl script, it will be way much faster to do so.


>
>
>
>  On Thu, May 8, 2008 at 9:17 AM, John Stanton <[EMAIL PROTECTED]> wrote:
>
>  > Dennis Cote wrote:
>  > > Barbara Weinberg wrote:
>  > >> I was wondering whether anyone had tried sorting records in random
>  > order
>  > >> using sqlite3. I tried sorting by random() and randomblob() but it was
>  > very
>  > >> slow and chewed up lots of resources. Any suggestions?
>  > >
>  > > Can you provide any more details about what you are trying to
>  > accomplish?
>  > >
>  > > There have been several previous discussions about selecting random
>  > > records from a table. You may want to look for those in the archives. If
>  > > you really need  to sort the entire table then you are probably stuck
>  > > with the slow operation. If you only need a random subset of a table
>  > > then you may be able to use some of these ideas to speed things up.
>  > >
>  > > HTH
>  > > Dennis Cote
>  > >
>  >
>  > If you have sequential rowids and know the largest then you can use a PRNG
>  > and get a random rowid to lookup.  That will be optimally fast.
>  >



-- 
Puneet Kishor http://punkish.eidesis.org/
Nelson Institute for Environmental Studies http://www.nelson.wisc.edu/
Open Source Geospatial Foundation (OSGeo) http://www.osgeo.org/
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to