Database 数据库表中的键值是否应该散列?

Database 数据库表中的键值是否应该散列?,database,database-design,hash,key,Database,Database Design,Hash,Key,假设一个数据库表有一列“Name”,它被定义为表的键。 通常的名称值为“Bill”、“Elizabeth”、“Bob”、“Alice”。表上的查找也将通过name键完成 散列值是否以任何方式优化了操作?i、 输入每个名称作为名称的散列值(假设MD5-32位) 如果是这样的话——这难道不是数据库的一项功能,而不是客户端处理的东西吗?假设您的数据库为主键生成了一个索引(我无法想象它不会),它是为您做的。因此,是的,它绝对应该是数据库处理的东西。“散列值是否以任何方式优化了操作?”不太可能 散列是单向

假设一个数据库表有一列“Name”,它被定义为表的键。 通常的名称值为“Bill”、“Elizabeth”、“Bob”、“Alice”。表上的查找也将通过name键完成


散列值是否以任何方式优化了操作?i、 输入每个名称作为名称的散列值(假设MD5-32位)


如果是这样的话——这难道不是数据库的一项功能,而不是客户端处理的东西吗?

假设您的数据库为主键生成了一个索引(我无法想象它不会),它是为您做的。因此,是的,它绝对应该是数据库处理的东西。

“散列值是否以任何方式优化了操作?”不太可能

散列是单向的。无法执行表扫描并重建原始名称

如果您想同时保留名称和名称哈希,那么通过包含派生数据,您已经打破了一条基本规则。现在名称更新需要哈希更新


散列中出现的“将我的值均匀分布”是索引的工作。

不,不要散列它们。您的数据库将基于数据建立索引,而散列则没有帮助。唯一可能有帮助的是,如果键值比散列长很多