gpt4 book ai didi

mysql - 通过散列 mysql 列搜索

转载 作者:行者123 更新时间:2023-11-29 03:11:26 24 4
gpt4 key购买 nike

我有一个查询,它比较许多列的值并返回结果。现在我必须添加另一列进行比较,这是一个文本字段,没有索引。现在我在考虑不这样做,而是添加一个名为 hash 的列,它将是这些列的哈希值,然后我可以只将它与我的代码为这些相同列生成的哈希值进行比较。

1) 我想知道这会带来任何性能提升吗?这有多大好处?

2) mysql 是否提供任何函数来散列列组合并存储结果,以便我可以散列现有列而无需为此编写单独的代码。

3) 选择哪种散列,MD5 还是 SHA?

4) 这是个好主意吗?

我有几百万条记录,预计几个月内还会生成几百万条记录,对这些进行哈希处理会为每条记录产生唯一的结果吗?

谢谢,戒日

最佳答案

1) 这可能会导致性能增强,尽管我怀疑您手动重新发明已经在数据库的索引引擎中实现的内容...所以我建议使用内置索引机制...

2) 是的 - 它有 MD5SHA/SHA1 散列字符串的 SQL 函数,因此您需要转换/转换任何值你想散列成一个字符串...

3) 这取决于您的数据 - 我猜 SHA 是一个不错的选择...

4) 我不这么认为......这是对数据库已经内置的东西的重新发明,并不意味着你摆脱索引......如果你希望它表现良好,你会必须用散列值索引列...

5) 不确定是否完全唯一但不太可能产生碰撞...

我会重新考虑该方法并使用复合索引。如果复合索引不适合您的需要,请创建一个包含连接值和索引的列...

关于mysql - 通过散列 mysql 列搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com