Re: Need guidance on partioning

Поиск
Список
Период
Сортировка
От Muhammad Salahuddin Manzoor
Тема Re: Need guidance on partioning
Дата
Msg-id CAKD7CDn8q+vLtzihfbYwg8MDoa76GqD2J00gjC6Astgz1UF9LQ@mail.gmail.com
обсуждение исходный текст
Ответ на Need guidance on partioning  (srinivasan s <srinioracledba7@gmail.com>)
Ответы Re: Need guidance on partioning
Список pgsql-admin
Dear Srinivasan,

Implementing partitioning in PostgreSQL can significantly improve the performance of your database

1. Deleting Records Older Than 18 Months

Create the Parent Table: Define your main table as partitioned by range on the timestamp column.

CREATE TABLE your_table (
    id SERIAL PRIMARY KEY,
    timestamp TIMESTAMPTZ NOT NULL,
    account_id INT,
    user_id INT,
    -- other columns
) PARTITION BY RANGE (timestamp);

2. Create Partitions: Define partitions for each range, such as monthly or quarterly. This makes it easier to drop old partitions when they exceed 18 months.

CREATE TABLE your_table_2023_01 PARTITION OF your_table FOR VALUES FROM ('2023-01-01') TO ('2023-02-01');
CREATE TABLE your_table_2023_02 PARTITION OF your_table FOR VALUES FROM ('2023-02-01') TO ('2023-03-01');
-- Repeat for other months

Automate Partition Management: You can use tools like pg_partman or create scripts to manage partitions, ensuring new partitions are created and old ones are dropped as needed.


Salahuddin (살라후딘)



On Wed, 22 May 2024 at 17:04, srinivasan s <srinioracledba7@gmail.com> wrote:
Hello everyone,

I hope you are all doing well.

I am seeking guidance on how to implement partitioning in PostgreSQL.

We have a large table that currently does not have any partitioning, and we have two requirements for removing old data from this table. We are looking to create a new table with partitioning.

1. The first requirement is to delete all records from the table that are older than 18 months. I believe we can achieve this by using range partitioning on the timestamp column.

2. The second requirement is to remove data from the table when a user leaves the organization. We have the account ID and user ID in the same table.

Could someone please offer guidance on selecting the appropriate partitioning method (range, sub-partition, or composite)?

Additionally, not all queries use the timestamp column in the WHERE condition. Is it mandatory to use the partition key in the WHERE condition to benefit from partitioning? Can we create a composite index that combines the partition key column with other columns used in the WHERE clause? Would this be beneficial?

Thank you.




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

Предыдущее
От: srinivasan s
Дата:
Сообщение: Re: Need guidance on partioning
Следующее
От: Muhammad Salahuddin Manzoor
Дата:
Сообщение: Re: displaying line breaks / increasing row height in pgadmin