Re: Un enregistrement au hasard ?

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 !

In response to

Responses

Browse pgsql-fr-generale by date

  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 ?