gpt4 book ai didi

mysql - 有什么方法可以创建字符串的 "signature"以确保字符串是唯一的?或者我应该使用唯一的数据库索引?

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:26 24 4
gpt4 key购买 nike

我正在建立一个网站。用户可以提交“标题”,它是一串unicode字符(不仅仅是英文)。

当用户提交“标题”时,我想看看它是否已经在数据库 (MySQL) 中。如果是,我会更新现有记录。如果它是一个新的“标题”,我会为它创建一个新记录。

我想测试唯一性的标准方法是在“标题”列上创建一个索引。但我担心这样一个索引的大小,因为“标题”可能会很长。

所以我想知道是否有办法创建“标题”的“签名”并使用它来测试唯一性?是否有一些哈希函数可以从 unicode 字符串哈希到唯一值?

任何指点将不胜感激。谢谢。

最佳答案

简单的答案是使用 MySql 哈希函数之一 (MD5 SHA1) 为每个标题创建哈希并将其与标题本身一起存储。

然后您可以索引哈希值,这将产生更好更快的索引。

这些基本上是加密函数,会占用大量 CPU,但您的语言环境可能会提供更简单、更快的散列,例如 crc32。

在散列之前对您的“标题”进行清理也是值得的,即。将多个空格强制为一个空格,将所有字符折叠为小写删除标点符号等。

因此“STACKOVERLOW 很棒......”和“stackoverflow 很棒”会产生相同的散列。

关于mysql - 有什么方法可以创建字符串的 "signature"以确保字符串是唯一的?或者我应该使用唯一的数据库索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5403015/

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