Re: delete is extremely slow

From: Emi Lu <emilu(at)encs(dot)concordia(dot)ca>
To: Scott Marlowe <smarlowe(at)g2switchworks(dot)com>
Cc: pgsql general <pgsql-general(at)postgresql(dot)org>, Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu>
Subject: Re: delete is extremely slow
Date: 2006-05-26 14:57:05
Message-ID: 44771741.9000700@encs.concordia.ca
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Scott Marlowe wrote:

>On Fri, 2006-05-26 at 09:51, Emi Lu wrote:
>
>
>>Emi Lu wrote:
>>
>>
>>
>>>>>Tried to run:
>>>>>
>>>>>delete from tableA where id <600000;
>>>>>
>>>>>It is extremely slow.
>>>>>
>>>>>id is integer and also the primary key. tableA has around 90000
>>>>>records.
>>>>>
>>>>>(I do not want to run truncate since I have some foreign key constraint
>>>>>setup based on tableA. Besides not all data I want to delete; only part
>>>>>of them).
>>>>>
>>>>>
>>>>>
>>>>>
>>>>Since you have some FK constrains on A, so delete each line of A will
>>>>confirm that it is not depended, which involves a lookup on the
>>>>dependent
>>>>table. Do you have indexes built on these dependents?
>>>>
>>>>
>>>>
>>>No, I do not have indexes setup for those dependents.
>>>
>>>If I setup index for those columns, it will speed up the deletion, right?
>>>
>>>Thank you.
>>>
>>>
>>>
>>>
>>http://archives.postgresql.org/pgsql-general/2003-02/msg01615.php
>>
>>If deletioin is 80% data, will index helps?
>>
>>
>
>Yep. If your master table has 10,000 rows, and the dependent table has
>100,000 rows, and you're deleting half of the master table (5,000 rows)
>then you'll have 5,000 sequential scans of the 100,000 row dependent
>table.
>
>
What about the reverse, 90,000 in the master table , while 500 records
in each dependant tables?

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scott Marlowe 2006-05-26 15:01:43 Re: delete is extremely slow
Previous Message Scott Marlowe 2006-05-26 14:54:39 Re: delete is extremely slow