目前我正在尝试开发一个 PostgreSQL 数据库模式,它只有 2 个表,其中一个包含用户名。困难在于,由于某些原因我无法直接存储用户名,所以我必须存储哈希值(SHA256)。
Postgres 有一个 bytea 数据类型,它是一个字节数组,技术上是 SHA256。
我的问题是,就搜索用户名是否存在于数据库中的速度而言,是否有更好的类型来存储哈希值。
也许我应该寻找 NoSQL 解决方案,这样的搜索速度更快?
这可能是一个微观优化,但
bytea
会使用更少的空间并更快地进行比较。
如果您最终使用
text
(避免使用 character
),请确保您使用的是 C
排序规则:
hash_value text COLLATE "C"
其他排序规则将导致更昂贵的比较。