From: | Peter Eisentraut <e99re41(at)DoCS(dot)UU(dot)SE> |
---|---|
To: | David Celjuska <dcsoft(at)dcsoft(dot)sk> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: [SQL] database with 1000000 rows is very slow |
Date: | 2000-03-06 07:22:05 |
Message-ID: | Pine.GSO.4.02A.10003060817320.17581-100000@Svan.DoCS.UU.SE |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Sun, 5 Mar 2000, David Celjuska wrote:
> CREATE UNIQUE INDEX "article_pkey" on "article" using btree ( "id"
> "varchar_ops" );
> this database store. But I think that select * from article where id
> like 'something%' is very slow (some minutes) and query as: select *
> from article where id='something' is very slow too. I don't know where
> is a problem a I would like optimalise this, but how can I do it?
If you haven't run vacuum analyze lately then you should do that.
> When I use hash except btree, query as: select * from article where
> id='something' is fast but select * from article where id='something%'
> is very slow.
Yup. That's because hashes only work on exact matches and btrees can do
ordering (like 'somethink' is surely "larger" than 'something%').
> Or postgresql make indexes automaticly?
No, you have to make them, but you did that right.
> How can I see that postgres use/or no use index on some query? It is
> possible?
Yup. EXPLAIN SELECT ....
In fact, if you can't make any progress you should always accompany any
optimizer issues with the EXPLAIN output. That will help our optimizer
gurus. :)
--
Peter Eisentraut Sernanders väg 10:115
peter_e(at)gmx(dot)net 75262 Uppsala
http://yi.org/peter-e/ Sweden
From | Date | Subject | |
---|---|---|---|
Next Message | zoltan.sebestyen | 2000-03-06 10:10:30 | index file's growing big |
Previous Message | Peter Eisentraut | 2000-03-06 07:12:52 | Re: [SQL] dayname() doubt |