保持TEXT字段在MySQL数据库中唯一的最佳方法

前端之家收集整理的这篇文章主要介绍了保持TEXT字段在MySQL数据库中唯一的最佳方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的MysqL表中使TEXT字段的值唯一.

经过小规模的研究后,我发现由于性能问题,每个人都不鼓励在TEXT字段上使用UNIQUE INDEX.我现在想要使用的是:

1)创建另一个字段以包含TEXT值的哈希值(md5(text_value))

2)使这个哈希字段为UNIQUE索引

3)在查询中使用INSERT IGNORE

这个解决方案是完整,安全和最佳的吗? (在SO上找到它)

是否有更好的方法来实现这一目标?

解决方法

正如我在评论中被问到如何解决这个问题,我会把它作为回应写出来.

处于这种情况表明应用程序设计存在错误.考虑这意味着什么.

您有一个文本,您无法提前指定长度,并且可能非常长(最多64k),您希望保持唯一性.想象一下,将如此大量的数据拆分为单独的密钥,并组成复合索引以生成唯一性.这就是你要做的.对于整数,这将是16000个整数的索引,以复合索引连接.

进一步考虑CHARACTER类型字段(CHAR,VARCHAR,TEXT)通过编码进行解释,这进一步使问题复杂化.

我强烈建议以某种方式分割数据.这不仅可以使DBMS免于合并可变长度的字符块,而且还可以为部分数据生成复合键.也许您甚至可以为您的数据找到更好的存储解决方案.

如果您有疑问,我建议发布表格和/或数据库结构,并解释TEXT字段包含的逻辑数据,以及您认为它必须是唯一的原因.

原文链接:https://www.f2er.com/html/231363.html

猜你在找的HTML相关文章