Re: Hash Indexes
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Oskari Saarenmaa <os@ohmu.fi>
Cc: Robert Haas <robertmhaas@gmail.com>, Bruce Momjian <bruce@momjian.us>, Jeff Janes <jeff.janes@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2016-09-21T22:29:54Z
Lists: pgsql-hackers
On 2016-09-21 19:49:15 +0300, Oskari Saarenmaa wrote: > 21.09.2016, 15:29, Robert Haas kirjoitti: > > For PostgreSQL, I expect the benefits of improving hash indexes to be > > (1) slightly better raw performance for equality comparisons and (2) > > better concurrency. > > There's a third benefit: with large columns a hash index is a lot smaller on > disk than a btree index. This is the biggest reason I've seen people want > to use hash indexes instead of btrees. hashtext() btrees are a workaround, > but they require all queries to be adjusted which is a pain. Sure. But that can be addressed, with a lot less effort than fixing and maintaining the hash indexes, by adding the ability to do that transparently using btree indexes + a recheck internally. How that compares efficiency-wise is unclear as of now. But I do think it's something we should measure before committing the new code. Andres
Commits
-
Remove _hash_wrtbuf() in favor of calling MarkBufferDirty().
- 25216c989384 10.0 landed
-
Fix race introduced by 6d46f4783efe457f74816a75173eb23ed8930020.
- 2f4193c3509a 10.0 cited
-
Improve hash index bucket split behavior.
- 6d46f4783efe 10.0 landed
-
Reduce pinning and buffer content locking for btree scans.
- 2ed5b87f96d4 9.5.0 cited