Re: An Inesrt on a partitioned table become very slow

Поиск
Список
Период
Сортировка
От Fabio Pardi
Тема Re: An Inesrt on a partitioned table become very slow
Дата
Msg-id 2e83674d-ef20-c6a7-d6d1-a903d569dc28@portavita.eu
обсуждение исходный текст
Ответ на An Inesrt on a partitioned table become very slow  (Tomer Praizler <tomer.praizler@gmail.com>)
Ответы Re: An Inesrt on a partitioned table become very slow  (David Rowley <david.rowley@2ndquadrant.com>)
Список pgsql-novice
Hi Tomer,

On Postgres, partitioning does not scale well when partitions are in the order of 4+ figures.

https://www.postgresql.org/docs/10/static/ddl-partitioning.html

It is very likely that most of the time is spent by the query planner.

regards,

fabio pardi


On 09/07/18 07:35, Tomer Praizler wrote:
> Hey, 
>
> I use Postgres 10.1, and I have the following structure:
> Parent table with columns:
> range_value: double, timestamp: timestamp, device_id: integer, count:integer
>
> which is partitioned with Partition key: LIST (range_value) which has a value of 1 - 26.
> So basically it has 26 child partitions. 
>
> Each one of those partitions it partitioned by range. essentially a daily partition.
>
> This is how the perant_table_with_range_value_1 is conofigured:
>
> Partition of: perant_table FOR VALUES IN ('1')
> Partition constraint: ((range_value IS NOT NULL) AND (range_value = ANY (ARRAY['0'::double precision])))
> Partition key: RANGE ("timestamp")
>
> At the moment I have 128 days of partitions in each one of the ranged partitioned.
> Which means a total of 26 * 128 = 3328 total partitions. 
>
> My problem is that inserts became very slow. 
> I used to bulk insert 10000 rows in 6 seconds, now it takes 45 seconds. 
>
> Is this an expected behavior? is there something I missing? 
> Thank you!
>
>
>



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

Предыдущее
От: Tomer Praizler
Дата:
Сообщение: An Inesrt on a partitioned table become very slow
Следующее
От: David Rowley
Дата:
Сообщение: Re: An Inesrt on a partitioned table become very slow