Re: Why is Hash index not transaction safe.

From: Sameer Kumar <sameer(dot)kumar(at)ashnik(dot)com>
To: Wei Shan <weishan(dot)ang(at)gmail(dot)com>, pgsql-novice(at)postgresql(dot)org
Subject: Re: Why is Hash index not transaction safe.
Date: 2015-05-06 03:19:05
Message-ID: CADp-Sm72-QAw47O10wSqxSDQ+cdf9GaFTfh9unFRMH4V9N4X5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Mon, May 4, 2015 at 11:26 AM Wei Shan <weishan(dot)ang(at)gmail(dot)com> wrote:

> Hi all,
>
> I read the following about Hash indexes in Heroku's blog (
> https://devcenter.heroku.com/articles/postgresql-indexes)
>
> *Hash Indexes are only useful for equality comparisons, but you pretty
> much never want to use them since they are not transaction safe, *
>

What does that "transaction-safe" mean? I guess they are *not crash-safe*
but this not make much sense to me.

> *need to be manually rebuilt after crashes, *
>

True. Since there is no WAL entry made when you create a Hash Index

> *and are not replicated to followers, *
>

Like said above, there is no WAL entry hence the replica standby (which
depends on WAL segments to reapply the changes coming from master) can not
receive the changes

> *so the advantage over using a B-Tree is rather small.*
>

I don't see a correlation here. Reliability and performance are two
different things for me in this context (though they may impact each other
in other context or features in PostgreSQL).

But saying *Hash indexes are not crash-safe hence they have very small
advantage over B-Tree indexes* is probably not apt!

*Hash indexes are not crash-safe and their is small advantage over B-Tree
indexes* is probably more accurate.

Could anyone explain about why is it not transaction safe as compared to
> B-Tree index.
>

Any specific reason you plan to use them?

>
> Thanks!
> --
> Regards,
> Ang Wei Shan
>

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message Wei Shan 2015-05-06 06:02:23 Re: Why is Hash index not transaction safe.
Previous Message Paul Linehan 2015-05-05 13:39:11 Re: Postmaster.pid - what do the various lines stand for?