Re: Improving performance on multicolumn query
От | Richard Huxton |
---|---|
Тема | Re: Improving performance on multicolumn query |
Дата | |
Msg-id | 4371F195.6060204@archonet.com обсуждение исходный текст |
Ответ на | Improving performance on multicolumn query (Jan Kesten <jan.kesten@web.de>) |
Список | pgsql-performance |
Jan Kesten wrote: > > First, I'm using postgresql 7.4.7 on a 2GHz machine having 1.5GByte RAM > and I have a table with about 220 columns and 20000 rows - and the first > five columns build a primary key (and a unique index). > transfer=> explain analyse SELECT * FROM test WHERE test_a=9091150001 > AND test_b=1 AND test_c=2 AND test_d=0 AND test_e=0; > > Index Scan using test_idx on test (cost=0.00..50.27 rows=1 width=1891) > (actual time=0.161..0.167 rows=1 loops=1) > Index Cond: (test_a = 9091150001::bigint) > Filter: ((test_b = 1) AND (test_c = 2) AND (test_d = 0) AND (test_e 0)) This says it's taking less than a millisecond - which is almost certainly too fast to measure accurately anyway. Are you sure this query is the problem? > So, what to do to speed things up? If I understand correctly this > output, the planner uses my index (test_idx is the same as test_pkey > created along with the table), but only for the first column. 1. Are all of test_a/b/c/d/e bigint rather than int? 2. Have you tried explicitly casting your query parameters? ...WHERE test_a=123::bigint AND test_b=456::bigint... -- Richard Huxton Archonet Ltd
В списке pgsql-performance по дате отправления: