Re: Para reemplazar ORDER BY RANDOM()

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Manuel Lamas <manuel3w(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Para reemplazar ORDER BY RANDOM()
Date: 2007-11-12 12:20:37
Message-ID: 20071112122037.GB6890@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Manuel Lamas escribió:
>
> Hola lista.
>
> Tengo una tabla bastante pesada y necesito sacar una linea en Random.
>
> El problema es que haciendo un EXPLAIN ANALYSE veo que postgres
> escanea toda la tabla para cumplir con ORDER BY RANDOM() LIMIT 1.
>
> Me pregunto si no hay una manera (sin que escanee toda la tabla) de me
> de la linea numero x (numero "x" que yo crearía con C++).

Es un problema complicado :-) Si tuvieras un ID numerico (un campo
serial por ejemplo) podrias hacer algo como

http://archives.postgresql.org/pgsql-general/2007-10/msg01606.php

El thread completo, donde se muestran varias ideas, aca:
http://thread.gmane.org/gmane.comp.db.postgresql.general/98185

--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-11-12 12:23:40 Re: Actualizacion en Cascada de llave primaria
Previous Message Alvaro Herrera 2007-11-12 11:56:12 Re: Deben de Baja