You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aria存储引擎表创建唯一哈希索引遇#1071错误如何解决?

解决Aria引擎表创建SHA-1列唯一哈希索引的#1071错误

错误原因

你遇到的#1071错误源于两个核心问题:

  • SHA-1算法生成的哈希值是40位十六进制字符串,你指定的64位索引长度完全多余,且超出了Aria引擎允许的索引键长度上限;
  • Aria引擎对哈希索引的键长度有严格限制,过长的键定义会直接触发该错误。

解决方案

1. 修正索引长度参数

直接使用SHA-1值的实际长度(40),或者省略长度参数(因SHA-1值长度固定),执行以下SQL:

ALTER TABLE `code`
ADD UNIQUE `ix_code_url_sha` (`url_sha`) USING HASH;

如果你的url_sha列定义为更长的字符串类型(比如VARCHAR(255)),也可以明确指定前缀长度为40:

ALTER TABLE `code`
ADD UNIQUE `ix_code_url_sha` (`url_sha`(40)) USING HASH;

2. 确认列定义有效性

确保url_sha列的长度至少为40(推荐用CHAR(40),SHA-1值长度固定,CHAR比VARCHAR更高效),如果列长度不足,先修改列定义:

ALTER TABLE `code` MODIFY COLUMN `url_sha` CHAR(40) NOT NULL;

额外说明

Aria引擎的哈希索引适合等值查询场景,对于SHA-1这类固定长度的唯一标识列,哈希索引能提供不错的查询性能。需要注意的是,Aria引擎不支持哈希索引的范围查询,若有此类需求,建议改用BTREE索引。

内容的提问来源于stack exchange,提问作者theking2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:30:41