News for hackers. Stuff that matters.
Re:Just use Postgres for everything by zffr on Saturday December 10, 2022 @01:48PM (#33935474)
I can confirm that indexing on a hashed value is definitely faster on SQLite at least.

The reason is that indexing on a hash produces a much smaller index so more of it can fit in memory. By minimizing disk seeks, you can speed up query time even if the Big O is the same. In both cases it should be O(log n) since SQLite uses btree indices.

Re:Just use Postgres for everything by ComputerGuru on Saturday December 10, 2022 @05:06PM (#33937396)
This is purely up to the schema designer or dbadmin. You can create a Postgres index specifying “using hash” to specify that the index will not contain the contents of the field, just its hash.

I’m pretty sure that still necessitates a hit to the db to prevent false hashes, but that’s going to be the case with your approach, too.

Re:Just use Postgres for everything by quickthrower2 on Saturday December 10, 2022 @03:33PM (#33936524)
Surely you give up LIKE queries benefiting from the index this way?
Re:Just use Postgres for everything by necovek on Sunday December 11, 2022 @08:46AM (#33943121)
Last time I needed this, LIKE queries still did sequential scans anyway, so the presence of an index or not did not matter.

Also note that you can have multiple indexes in Postgres (well, any RDBMS).

For emails in particular, you can even do partial indexes (eg. imagine filtering emails on @gmail.com to hit a separate index that's only half of your full table index). This requires some care with queries, but a wonderful feature regardless.

Re:Just use Postgres for everything by tpetry on Monday December 12, 2022 @05:54AM (#33953302)
With a trigram index in PostgreSQL you can even do index-supported leading wildcard searches.