考虑的方法是创建一个固定长度的字符串散列,然后索引该散列。如果是这样,有没有办法在 MySQL 中执行此操作,或者是否需要我在 MySQL 之外执行该过程的某些部分。
数据库引擎是 InnoDB,这里是关于我得到的错误的信息,似乎是正确的。
http://forums.techarena.in/software-development/1185285.htm
基本上尝试使用作为自然长文本键的列作为 UNIQUE constraint ,这意味着如果列字段不唯一,则回滚插入事务。该列的长度可以是 80 到 15 万个字符。
最佳答案
通常 TEXT/LONGTEXT/BLOB
字段上的 UNIQUE
索引不是一个好主意,因为 MySQL 不能有任意长度的索引。您要么必须指定最大字符数(例如 UNIQUE (fieldname(255))
- 我相信 4005 是 UTF8 的当前限制,1000 常规),限制字段长度(在这种情况下您不妨将其设为 VARCHAR
),或删除 UNIQUE
索引。
关于mysql - 在 MySQL 中,如何解决无法使用定义的字符串作为索引的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4368956/