Re: BUG #8598: Row count estimates of partial indexes

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #8598: Row count estimates of partial indexes
Дата
Msg-id 28474.1384705755@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #8598: Row count estimates of partial indexes  (marko@joh.to)
Ответы Re: BUG #8598: Row count estimates of partial indexes
Список pgsql-bugs
marko@joh.to writes:
> We have the following partial index on a small subset of a larger table:
>   "index_transactions_transaction_balance_details" btree (transactionid)
> WHERE NOT processed AND accountbalancesdailyid IS NOT NULL
> However, querying with the WHERE clause completely ignores the
> pg_class.reltuples value for the index:

Yup.  Row count estimates are derived by estimating the selectivity of the
given WHERE clauses and multiplying by the (estimated) current table size.
In the particular case you show here, with a partial index that *exactly*
matches the WHERE clause, we could get a better answer by looking at the
index size --- but that doesn't scale to any less simplistic case, such
as a query with additional WHERE clauses.

It's also important to realize that reltuples for an index is a whole lot
less trustworthy than it is for a table; ANALYZE doesn't update the
former, for example.  And scaling from the last-reported VACUUM stats
to current reality is going to be shakier.

So on the whole, I don't think this would be a good idea.

            regards, tom lane

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Kevin Grittner
Дата:
Сообщение: Re: BUG #8598: Row count estimates of partial indexes
Следующее
От: Marko Tiikkaja
Дата:
Сообщение: Re: BUG #8598: Row count estimates of partial indexes