From: | Sébastien Dinot <sebastien(dot)dinot(at)free(dot)fr> |
---|---|
To: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: Un enregistrement au hasard ? |
Date: | 2008-11-12 20:42:57 |
Message-ID: | 20081112204257.GA5749@dinot.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Samuel ROZE a écrit :
> Ces solutions sont éfficaces (les 2 méthodes marchent :)) mais elles
> nécessite un parcours de toute la table (ou de l'index) non ?
Pour en avoir le cœur net, il suffit de le demander à PostgreSQL via un petit
EXPLAIN. Voici un exemple :
adherents=# EXPLAIN SELECT * FROM personne ORDER BY RANDOM() LIMIT 1;
QUERY PLAN
-------------------------------------------------------------------------
Limit (cost=44.20..44.20 rows=1 width=21)
-> Sort (cost=44.20..48.80 rows=1840 width=21)
Sort Key: (random())
-> Seq Scan on personne (cost=0.00..35.00 rows=1840 width=21)
(4 lignes)
Il y a donc bien un parcours séquentiel de la table, ce qui n'est pas très
étonnant. (c:
Sébastien
--
Sébastien Dinot, sebastien(dot)dinot(at)free(dot)fr
http://sebastien.dinot.free.fr/
Ne goûtez pas au logiciel libre, vous ne pourriez plus vous en passer !
From | Date | Subject | |
---|---|---|---|
Next Message | Stephane Bortzmeyer | 2008-11-12 21:31:54 | Re: Un enregistrement au hasard ? |
Previous Message | Samuel ROZE | 2008-11-12 14:09:47 | Re: Un enregistrement au hasard ? |