Re:Just use Postgres for everything
by giantrobot on Saturday December 10, 2022 @02:36PM
(#33935975)
You're augmenting the indexing system. By using hashes you get a column with fixed predictable size. If the average size of your large strings is larger than 16 bytes (or 32 bytes if you store the hex string) you'll get more rows per memory page. If you've got many millions of rows the savings adds up. A little bit of savings let's a smaller DB instance go farther.
[ Parent
| on HN ]
Re:Just use Postgres for everything
by jamal-kumar on Saturday December 10, 2022 @04:53PM
(#33937254)
Oh wow that makes perfect sense, I see exactly why this solution would work better now, very good point.
The other thing is that if you're inserting your emails in without running some ToLower() function on them first in the validation, you're probably making a bit of a mistake. There's some other discussion in the thread about this.
Re:Just use Postgres for everything
by giantrobot on Saturday December 10, 2022 @07:11PM
(#33938484)
You should definitely normalize e-mails before hashing or doing any comparison on the back end. Especially if you've had a stage during account creation where you verified delivery of that normalized address. When you take in an address later you normalize the input and compare it to your stored value (that itself was normalized before storage).