On Sun, 25 Feb, 2024, 1:05 am yudhi s, <learnerdatabas...@gmail.com> wrote:

>
> On Fri, Feb 23, 2024 at 5:26 PM sud <suds1...@gmail.com> wrote:
>
>>
>>
>> On Fri, 23 Feb, 2024, 1:28 pm yudhi s, <learnerdatabas...@gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Fri, 23 Feb, 2024, 1:20 pm sud, <suds1...@gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Fri, 23 Feb, 2024, 12:41 pm Laurenz Albe, <laurenz.a...@cybertec.at>
>>>> wrote:
>>>>
>>>>> On Fri, 2024-02-23 at 02:05 +0530, yudhi s
>>>>>
>>>>> > 2)Should we be creating composite indexes on each foreign key for
>>>>> table2 and table3, because
>>>>> >   any update or delete on parent is going to take lock on all child
>>>>> tables?
>>>>>
>>>>> Every foreign key needs its own index.  A composite index is only
>>>>> appropriate if the foreign
>>>>> key spans multiple columns.
>>>>>
>>>>>
>>>>
>>>> From the DDL which OP posted it's using composite foreign key thus a
>>>> composite index would be needed.
>>>> However, if someone doesn't delete or update the parent table PK   , is
>>>> it still advisable to have all the FK indexed? Like in general I think
>>>> transaction id should not get updated in a normal scenario unless some
>>>> special case.
>>>>
>>>>
>>>>
>>> Thank you. I can double check if we have confirmed use case of deleting
>>> the parent table or updating PK in the parent table. But anyway it can
>>> happen for data fix for sure in some scenario.
>>>
>>> But yes, we are certainly going to drop/purge partition from all the
>>> parent and child table after specific days. So isn't that need the FK to be
>>> indexed or else it will scan whole parent table partition?
>>>
>>
>>
>> I am not sure if drop partition of parent table, will have a lock or will
>> do a full scan on the child table while doing the partition maintenance or
>> dropping the partitions, in absence of foreign key index. Others may
>> comment here.
>>
>>>
>>>>
> Can you please help me understand, If it's true that all the statements
> like Delete, Update and Drop partition of parent table will take lock on
> the child table and Full scan the child table , and thus foreign key index
> on all the child table is necessary irrespective of the performance
> overhead it has on all the INSERT queries into the child tables?
>


Not sure of the lock but I think you should be able to see a full scan on
child table while doing delete or update of parent table PK. Explain
Analyze should show that I believe. Not sure if explain analyze will work
for drop partition too.

>

Reply via email to