我需要让 MySQL 检查最大长度为 5000 且不是主键的 VARCHAR 列的唯一性。我可以在列上使用长度为 500 的索引来加快查询速度,但是如何创建有效的唯一键?
尝试插入两条记录时,长度为 500 的唯一键失败,其前 500 个字符的列相同,之后的某处不同。
CREATE INDEX example_idx ON YOUR_TABLE(your_column(50)) 假设 your_column 是 VARCHAR(100),上例中的索引将只在前 50 个字符上。搜索超过第 50 个字符的数据将无法使用索引。
我不这么认为。我认为当查询超过 50 个字符的字符串时,MySQL 将首先使用前 50 个字符和索引来获取匹配列表(通常是一个很短的列表),然后在没有索引的列表中搜索。
当查询字符串超过 50 个字符时,MySQL 真的不会使用索引吗?