Re: working around JSONB's lack of stats?

Поиск
Список
Период
Сортировка
От Josh Berkus
Тема Re: working around JSONB's lack of stats?
Дата
Msg-id 54C96AAA.9050901@agliodbs.com
обсуждение исходный текст
Ответ на working around JSONB's lack of stats?  (Josh Berkus <josh@agliodbs.com>)
Ответы Re: working around JSONB's lack of stats?
Re: working around JSONB's lack of stats?
Список pgsql-performance
On 01/28/2015 11:48 AM, Tomas Vondra wrote:
> On 27.1.2015 08:06, Josh Berkus wrote:
>> Folks,
>>
> ...
>>
>> On a normal column, I'd raise n_distinct to reflect the higher
>> selecivity of the search terms.  However, since @> uses contsel,
>> n_distinct is ignored.  Anyone know a clever workaround I don't
>> currently see?
>
> I don't see any reasonable workaround :-(
>
> ISTM we'll have to invent a way to collect useful stats about contents
> of JSON/JSONB documents. JSONB is cool, but at the moment we're mostly
> relying on defaults that may be reasonable, but still misfire in many
> cases. Do we have any ideas of how that might work?
>
> We're already collecting stats about contents of arrays, and maybe we
> could do something similar for JSONB? The nested nature of JSON makes
> that rather incompatible with the flat MCV/histogram stats, though.

Well, I was thinking about this.

We already have most_common_elem (MCE) for arrays and tsearch.  What if
we put JSONB's most common top-level keys (or array elements, depending)
in the MCE array?  Then we could still apply a simple rule for any path
criteria below the top-level keys, say assuming that any sub-key
criteria would match 10% of the time.  While it wouldn't be perfect, it
would be better than what we have now.

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com


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

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: Re: working around JSONB's lack of stats?
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: working around JSONB's lack of stats?