我需要根据SQL查询以及该查询中使用的任何参数的字符串值生成校验和。校验和用于缓存方案。如果校验和存在于缓存中,结果也是如此,那么我不需要点击DB。
要求1: 两个不同的查询不会生成相同的哈希值很重要。因为这可能导致返回意外结果。
要求2: 它不会非常缓慢,但它又在记忆中并且不应该有太多的内容。
根据上下文,哪种算法最适合? CRC32,MD5,SHA1还是其他什么?
//丹尼尔
答案 0 :(得分:0)
将整个查询字符串与常规HashTable / Dictionary / HashMap中的参数连接,或者用您的语言调用它。将SQL查询作为键,将结果作为值。
您的HashTable将为您的字符串使用适当的散列函数并解决任何散列冲突。