通过哈希码在数据库中搜索大字符串会更快吗?

Sru*_*uly 11 database hash performance

如果我需要从数据库中检索一个大字符串,使用字符串本身搜索它是否更快,还是通过散列字符串并将哈希值存储在数据库中然后根据它进行搜索来获得?

如果是,我应该使用什么哈希算法(安全性不是问题,我正在寻找性能)

如果重要:我使用的是C#和MSSQL2005

Ric*_*ard 6

通常:可能不是,假设列已编入索引.数据库服务器旨在快速有效地执行此类查找.某些数据库(例如Oracle)提供了基于散列构建索引的选项.

但是,最终只能通过具有代表性(您的要求)数据和使用模式的性能测试来回答.


Dav*_*ebb 3

如果这提供了巨大的改进,我会感到惊讶,并且我建议不要使用您自己的性能优化来进行数据库搜索。

如果您使用数据库索引,则 DBA 可以使用经过尝试且值得信赖的方法来调整性能。对您自己的索引优化进行硬编码将防止这种情况发生,并且可能会阻止您在未来版本的数据库中获得索引性能的任何改进。