Search Postgresql Archives

Re: group by query plan on already clustered index

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello

2013/7/25 Sandeep Gupta <gupta.sandeep@xxxxxxxxx>:
> On a table T with two fields, f1 and f2, the sql command
>
> select count(f2), f1
> from  T
> group by f1
>
> result is seq scan followed by a sort on f1 (see the query plan below):
>
>    GroupAggregate  (cost=21566127.88..22326004.09 rows=987621 width=8)
>    ->  Sort  (cost=21566127.88..21816127.88 rows=100000000 width=8)
>          Sort Key: pid
>          ->  Seq Scan on tc  (cost=0.00..1442478.00 rows=100000000 width=8)
>
>
> However, the table is already has clustered index on f1.  My question is why
> doesn't
> postgres simply scan the table and compute the group? Why it needs to sort
> on f1 again?
> How can I force postgres to use the clustered index for group by?
>

PostgreSQL doesn't support index organized tables. Statement CLUSTER
doesn't ensure order of heap for ever. After any INSERT, UPDATE you
can lost a order.

So every time, you have to check order.

PostgreSQL 9.2 support a index only scan - but it is not used in your plan.

Regards

Pavel Stehule




>
> Thanks.
> Sandeep
>
>


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux