public inbox for [email protected]  
help / color / mirror / Atom feed
From: Vik Fearing <[email protected]>
To: Cary Huang <[email protected]>
To: Thomas Kellerer <[email protected]>
Cc: pgsql-hackers <[email protected]>
Subject: Re: Patch: Global Unique Index
Date: Tue, 29 Nov 2022 13:58:21 +0100
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>
	<[email protected]>
	<CAFj8pRCXadc7aCdcYKG-CP-v8q5rpoXLEGbH8z13g-3X4Y6MKQ@mail.gmail.com>
	<[email protected]>
	<[email protected]>

On 11/24/22 19:15, Cary Huang wrote:
>   ---- On Thu, 24 Nov 2022 08:00:59 -0700  Thomas Kellerer  wrote ---
>   > Pavel Stehule schrieb am 24.11.2022 um 07:03:
>   > >     There are many Oracle users that find global indexes useful despite
>   > >     their disadvantages.
>   > >
>   > >     I have seen this mostly when the goal was to get the benefits of
>   > >     partition pruning at runtime which turned the full table scan (=Seq Scan)
>   > >     on huge tables to partition scans on much smaller partitions.
>   > >     Partition wise joins were also helpful for query performance.
>   > >     The substantially slower drop partition performance was accepted in thos cases
>   > >
>   > >
>   > >     I think it would be nice to have the option in Postgres as well.
>   > >
>   > >     I do agree however, that the global index should not be created automatically.
>   > >
>   > >     Something like CREATE GLOBAL [UNIQUE] INDEX ... would be a lot better
>   > >
>   > >
>   > > Is it necessary to use special marks like GLOBAL if this index will
>   > > be partitioned, and uniqueness will be ensured by repeated
>   > > evaluations?
>   > >
>   > > Or you think so there should be really forced one relation based
>   > > index?
>   > >
>   > > I can imagine a unique index on partitions without a special mark,
>   > > that will be partitioned,  and a second variant classic index created
>   > > over a partitioned table, that will be marked as GLOBAL.
>   >
>   >
>   > My personal opinion is, that a global index should never be created
>   > automatically.
>   >
>   > The user should consciously decide on using a feature
>   > that might have a serious impact on performance in some areas.
> 
> 
> Agreed, if a unique index is created on non-partition key columns without including the special mark (partition key columns), it may be a mistake from user. (At least I make this mistake all the time). Current PG will give you a warning to include the partition keys, which is good.
> 
> If we were to automatically turn that into a global unique index, user may be using the feature without knowing and experiencing some performance impacts (to account for extra uniqueness check in all partitions).

I disagree.  A user does not need to know that a table is partitionned, 
and if the user wants a unique constraint on the table then making them 
type an extra word to get it is just annoying.
-- 
Vik Fearing






view thread (33+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Patch: Global Unique Index
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox