未登录用户
首 页
书 架
登录系统
注册账号
联系我们
duidaima.com
版权声明
闽ICP备2020021581号
闽公网安备 35020302035485号
搜索
我要提问
随便写写
我要写书
MySQL报错:ERROR 1071 (42000): Specified key was too long; max key length is 3072 bytes
发布于 2个月前
348 热度
5 评论
温暖眼瞳
1 粉丝 33 篇博客
关注
打赏
如题,MySQL报错:
ERROR 1071 (42000): Specified key was too long; max key length is 3072 bytes 。但我确实需要大一点的 key ,因为这里有个 key 是文件路径 filepath(varchar),怕有些路径逆天的长,所以才希望越大越好
unique index xr_top_index(filepath,account)
但是系统不允许,感觉这样的话只好作罢?大家有没有好的解决方案?
用户评论
强势控局
存路径这个做法本身有点怪……我可能会选择文件的其他特征来做这个事情……
不清楚场景,假设场景必须要存路径,考虑一下把 SOMEHASH(filepath, account), account 作为 key 呢?比如说 trigger 去 set 一下额外的列为 SHA2(CONCAT(filepath,"\\/", account), 256),把这个列作为 unique key 的一个 column 。降低碰撞概率的话,多加一种两种哈希呢?
我是写业务的菜鸡,暂时还只能想怎么实现的问题。要不然就只能业务上限制一下了
2024/4/7 21:32:00
[
0
]
[
0
]
回复
别来无恙
b 站的图片都是 sha1 ,目前还没炸,当然可能是从数字 id 算出来的,提前预演跑一遍,确定没问题。不放心的话存之前读一遍,判断是否有相同的哈希值。
2024/4/7 21:31:00
[
0
]
[
0
]
回复
蹦跶少年
弄个冗余字段,存 filepath 的 hash 值
2024/4/7 21:30:00
[
0
]
[
0
]
回复
余归
要不考虑做个 hash 再用 key ?然后查询的时候用 hash ?
2024/4/7 21:29:00
[
0
]
[
0
]
回复
褪色时间
别放索引就好了,如果要按照文件路径来搜索,当文本来搜索,如果都是精确匹配是不是可以再存一个 hash 值作为索引。
2024/4/7 21:29:00
[
0
]
[
0
]
回复
点击加载更多评论
MySQL技术
124 成员 |
213 话题
+我要提问
+随便写写
可能感兴趣的话题
你知道聚簇索引和非聚簇索引的区别吗?
把数据库从mysql迁移到TiDB感觉SQL查询的速度很慢,原因出在哪里?
Mysql登陆密码忘记了该怎么办?
MySQL中的自增长ID用完了该怎么办?
不清楚场景,假设场景必须要存路径,考虑一下把 SOMEHASH(filepath, account), account 作为 key 呢?比如说 trigger 去 set 一下额外的列为 SHA2(CONCAT(filepath,"\\/", account), 256),把这个列作为 unique key 的一个 column 。降低碰撞概率的话,多加一种两种哈希呢?
我是写业务的菜鸡,暂时还只能想怎么实现的问题。要不然就只能业务上限制一下了