On 5/26/06, Tom Lane <[EMAIL PROTECTED]> wrote:
"Merlin Moncure" <[EMAIL PROTECTED]> writes:
> did you have a key on a,b,c?
Yeah, I did
        create index t1i on t1 (a,b,c);
Do I need to use some other syntax to get it to work?

can't thing of anything, I'm running completely stock, did you do a
optimize table foo? is the wind blowing in the right direction?

> select count(*) from (select a,b,max(c) group by a,b) q;
> blows the high performance case as does putting the query in a view.

I noticed that too, while trying to suppress the returning of the
results for timing purposes ... still a few bugs in their optimizer
obviously.  (Curiously, EXPLAIN still claims that the index is being
used.)

well, they do some tricky things pg can't do for architectural reasons
but the special case is obviously hard to get right.  I suppose this
kinda agrues against doing all kinds of acrobatics to optimize mvcc
weak cases like the above and count(*)...better to make heap access as
quick as possible.

> mysql> select user_id, acc_id, max(sample_date) from usage_samples group by 
1,2
> 939 rows in set (0.07 sec)

> mysql> select user_id, acc_id, max(sample_date) from usage_samples group by 
1,2
> 939 rows in set (1.39 sec)

oops, pasted the wrong query..case 2 should have been
select user_id, acc_id, max(sample_date), disksize from usage_samples
group by 1,2
illustrating what going to the heap does to the time.

merlin

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

Reply via email to