mysql全字段hash表_MySQL:使用附加HASH字段的UNIQUE文本字段

已解决

密码学

MySQL:使用附加HASH字段的UNIQUE文本字段649788f17101bff39e9643602f4d66a1.png10

在我的MySQL数据库中,我有一个表定义如下:CREATE TABLE `mytablex_cs` (

`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,

`tag` varchar(6) COLLATE utf8_bin NOT NULL DEFAULT '',

`value` text COLLATE utf8_bin NOT NULL,

PRIMARY KEY (`id`),

KEY `kt` (`tag`),

KEY `kv` (`value`(200))

) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 COLLATE=utf8_bin

我需要在value字段上实现UNIQUE约束(键)。

我知道还不可能为blob或text字段的整个值定义唯一索引,但是有一个票证(?)打开来实现这样的功能(参见本页 ),其中建议创建一个唯一的使用哈希的密钥已经为其他字段实现了。

现在我想使用类似的方法向表中添加另一个字段,该字段将包含哈希并在此字段上创建唯一键。

我看了一下创建这个哈希的可能方法,因为我想避免冲突(我需要插入几百万个条目),似乎RIPEMD-160算法是最好的算法,即使快速搜索给出了我使用SHA256甚至SHA1和MD5的几个类似的解决方案。

我完全缺乏密码学方面的知识,那么选择这种方法的缺点是什么呢?

我的另一个问题是:MySQL目前使用哪种算法来创建哈希?

Orange

2019.07.31

95fa9268de11d0061c77acb40a6f985f.png4617

3037648d6a74d46918a474e105002d34.png收藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值