Re: count(*) using index scan in "query often, update rarely" environment
От | Cestmir Hybl |
---|---|
Тема | Re: count(*) using index scan in "query often, update rarely" environment |
Дата | |
Msg-id | 9fbe01c5cb30$4407d580$131fc39e@stratos обсуждение исходный текст |
Ответ на | count(*) using index scan in "query often, update rarely" environment ("Cestmir Hybl" <cestmirl@freeside.sk>) |
Ответы |
Re: count(*) using index scan in "query often, update rarely" environment
|
Список | pgsql-performance |
collision: it's possible to either block updating transaction until index scan ends or discard index scan imediately and finish query using MVCC compliant scan dead rows: this sounds like more serious counter-argument, I don't know much about dead records management and whether it would be possible/worth to make indexes matching live records when there's no transaction in progress on that table ----- Original Message ----- From: "Steinar H. Gunderson" <sgunderson@bigfoot.com> To: <pgsql-performance@postgresql.org> Sent: Friday, October 07, 2005 12:48 PM Subject: Re: [PERFORM] count(*) using index scan in "query often, update rarely" environment > On Fri, Oct 07, 2005 at 11:24:05AM +0200, Cestmir Hybl wrote: >> Isn't it possible (and reasonable) for these environments to keep track >> of >> whether there is a transaction in progress with update to given table and >> if not, use an index scan (count(*) where) or cached value (count(*)) to >> perform this kind of query? > > Even if there is no running update, there might still be dead rows in the > table. In any case, of course, a new update could always be occurring > while > your counting query was still running. > > /* Steinar */ > -- > Homepage: http://www.sesse.net/ > > ---------------------------(end of broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster
В списке pgsql-performance по дате отправления: