有没有办法解决MySQL中的1024字节密钥大小限制?基本上这在尝试复合索引时会造成严重破坏。
答案 0 :(得分:3)
虽然我犹豫是否表示你做错了(因为我没有完整的细节),但是单个键(甚至是多部分键)的大小是相当不寻常的。我已经看到表中的所有键的聚合可能很大,但很少只有一个键。
键的整个要点是使用行的相对较小的部分来快速定位该行。如果你的关键点很大,你可能需要退后一步,重新检查你认为你需要它们的原因。
您最好的选择是在此处发布架构,以便我们建议替代方案。
如果你真的做需要那么大的密钥,你可能会发现你唯一的选择就是切换到另一个DBMS。例如,DB2 / z对每个密钥都有8K的限制。我并不是建议您尝试在这里购买大型机,只是这是我唯一知道的限制因素 - 显然您应该看一下DBMS,它不会花费几百万美元来实现: - )
答案 1 :(得分:1)
您可以使用crc32,MD5或类似方法对值进行哈希处理,然后对哈希值进行索引。
您需要在SQL中为原始字段添加额外的比较来处理冲突,但由于冲突非常罕见,因此不会花费太多。