I wrote a User-Defined Function that implements the FNV (Fowler-Voll-No) hash function for MySQL. I’m not the first person to do this — in fact, I was inspired by the Google patches for MySQL. But my implementation is a little bit different from most, in a very important way that leads directly to much higher performance, especially suited for the Maatkit tools.
A bit of background: FNV hashing is a very fast hash algorithm
that operates in fixed memory. It is widely used in lots of
important areas in computer science. My implementation requires
absolutely no malloc()
calls, which is a darn good
thing because I am not to be trusted with malloc()
,
having spent too …