Re: Strange query plan
От | Thomas Burdairon |
---|---|
Тема | Re: Strange query plan |
Дата | |
Msg-id | 1391EBF6-01FC-4C74-B4D5-B91E2508AA09@entelience.com обсуждение исходный текст |
Ответ на | Re: Strange query plan ("Dmitry Teslenko" <dteslenko@gmail.com>) |
Список | pgsql-general |
On 14 août 08, at 16:28, Dmitry Teslenko wrote: > On Thu, Aug 14, 2008 at 17:55, Igor Neyman <ineyman@perceptron.com> > wrote: >> >> -----Original Message----- >> From: Dmitry Teslenko [mailto:dteslenko@gmail.com] >> Sent: Thursday, August 14, 2008 6:57 AM >> To: pgsql-general@postgresql.org >> Subject: Strange query plan >> >> Hello! >> >> I have following table: >> >> CREATE TABLE table1 ( >> field1 INTEGER NOT NULL, >> field2 INTEGER NOT NULL, >> field3 CHARACTER(30), >> ... some more numeric fields) >> >> I have also those indexes: >> >> CREATE UNIQUE INDEX idx1 ON table1 USING btree (field3, field2, >> field1) >> CREATE INDEX idx2 ON table1 USING btree (field1, field3) >> >> Then I query this table with something like this: >> >> SELECT SUM(...) FROM table1 WHERE field3 = 'ABC' AND field1 <> 1 >> GROUP BY field2 >> I just wonder if you should create your index in the other order, like CREATE INDEX idx2 ON table1 USING btree (field3, field1) Documentation @ http://www.postgresql.org/docs/8.3/interactive/ indexes-multicolumn.html says : > The exact rule is that equality constraints on leading columns, > plus any inequality constraints on the first column that does not > have an equality constraint, will be used to limit the portion of > the index that is scanned Hope this helps Tom >> And planner picks up a sequential scan of a table. Why does he? >> >> >> [I.N.] >> How big is your table? >> If it's not too big, the cost of table scan might be lower than using >> index. >> >> Igor > > Table contains ~1 million rows and scan takes very long time. That's > the reason I'm asking the question on a mail list. > > -- > A: Because it messes up the order in which people normally read text. > Q: Why is top-posting such a bad thing? > A: Top-posting. > Q: What is the most annoying thing in e-mail? > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general
В списке pgsql-general по дате отправления: