Mysql 为varchar(225)列编制索引

Mysql 为varchar(225)列编制索引,mysql,hash,Mysql,Hash,我有一个varchar字段,最多可以包含225个字符,我需要在WHERE子句中使用此列进行快速查找 所以索引将是一个好主意,但我听说索引大型列会减慢速度,应该创建一个单独的列来存储第一列的较短散列,并索引这个新列 然后查询将执行类似于的操作,其中hash\u column=hash(x)和long\u column=x 这是一个好的解决方案吗?我应该用什么散列呢?该表将有很多条目(超过数百万条)。那么碰撞呢?如果具有相同散列的条目数量过多怎么办?它们是否变得太多,或者是否存在即使有数十亿个条目也

我有一个varchar字段,最多可以包含225个字符,我需要在
WHERE
子句中使用此列进行快速查找

所以索引将是一个好主意,但我听说索引大型列会减慢速度,应该创建一个单独的列来存储第一列的较短散列,并索引这个新列

然后查询将执行类似于
的操作,其中hash\u column=hash(x)和long\u column=x

这是一个好的解决方案吗?我应该用什么散列呢?该表将有很多条目(超过数百万条)。那么碰撞呢?如果具有相同散列的条目数量过多怎么办?它们是否变得太多,或者是否存在即使有数十亿个条目也不会发生冲突的散列

在哈希列上有这个1索引就足够了,还是我需要添加任何额外的索引

谢谢你的帮助


编辑:我使用InnoDB。

看看这个@rpd谢谢,这真的很有帮助。我还读了这篇详细的文章,其中解释了很多:经验表明,除了明显的最佳实践之外,反复试验是处理问题的最佳方式。例如,如果其他列也被大量查询,也可以尝试在它们上添加索引,并尝试执行时间