Re: CREATE INDEX rather sluggish

Поиск
Список
Период
Сортировка
От Gavin Hamill
Тема Re: CREATE INDEX rather sluggish
Дата
Msg-id 20060330214531.ce6620e1.gdh@laterooms.com
обсуждение исходный текст
Ответ на Re: CREATE INDEX rather sluggish  (Simon Riggs <simon@2ndquadrant.com>)
Список pgsql-performance
On Thu, 30 Mar 2006 18:08:44 +0100
Simon Riggs <simon@2ndquadrant.com> wrote:

Hello again Simon :)

> The index build time varies according to the number and type of the
> datatypes, as well as the distribution of values in the table. As well
> as the number of rows in the table.
>
> Note the x10 factor to index AreaID (integer) v KeywordType (vchar(20))

Fair enough. :) Is there much of a performance increase by using fixed-length character fields instead of varchars?

> Try trace_sort = on and then rerun the index builds to see what's
> happening there. We've speeded sort up by about 2.5 times in the current
> development version, but it does just run in single threaded mode so
> your 8 CPUs aren't helping there.

Yum - I look forward to the 8.2 release =)

> Looks like you might be just over the maintenance_work_mem limit for the
> last index builds. You can try doubling maintenance_work_mem.

You were right - needed ~370MB ... I'm happy to alloc 1GB to allow for db growth..

> The extended runtime for KeywordType is interesting in comparison to
> LowerText, which on the face of it is a longer column. My guess would be
> that LowerText is fairly unique and sorts quickly, whereas KeywordType
> is fairly non-unique with a high average row length that require
> complete string comparison before deciding it is actually the same
> value.

From looking at a few samples of the millions of rows it seems that it's actually KeywordType that's more unique -
LowerTextis simply an lowercase representation of the name of this search-keyword, so it's much less unique. Fun stuff
:)

> You might want to try using codes rather than textual KeywordTypes.

That makes sense - I can't get a grip on the data in KeywordType at the moment .. many are more obvious like 'RGN'
'AREA''MKT' 'LK' for Region, Area, Market and Lake, but many other rows have '1'. 

> You might try using partial indexes also, along the lines of
>
> CREATE INDEX ix_keyword_type ON "Keyword" USING btree ("KeywordType") WHERE KeywordType IS NOT NULL;

Well, each row does have a KeywordType, so no row has a NULL entry...

> Best Regards, Simon Riggs

Cheers :)
Gavin.


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

Предыдущее
От: Gavin Hamill
Дата:
Сообщение: Re: CREATE INDEX rather sluggish
Следующее
От: PFC
Дата:
Сообщение: Re: Decide between Postgresql and Mysql (help of