在MySQL中,UNIQUE索引是否可以快速查找varchar列?

时间:2010-02-24 18:30:04

标签: mysql

如果我在MySQL表中有一个列short_title并且它被定义为UNIQUE,那么我是否还必须添加FULLTEXT才能快速搜索?或者UNIQUE是否已经保证它可以快速搜索(没有全表扫描)?

谢谢,Boda Cydo

1 个答案:

答案 0 :(得分:3)

UNIQUE将使用基础索引找到逐字short_title

如果您需要单词匹配(而不是逐字匹配),请使用FULLTEXT索引。

另请注意,默认情况下,B-TreeMyISAM列的VARCHAR索引会受到密钥压缩。这可以减慢对接近字母结尾的标题的搜索速度:

最后,VARCHAR键的大小往往很大。

对于最快的逐字搜索,您应该在MD5列中存储标题的BINARY(16)哈希,在其上创建UNIQUE索引(禁用密钥压缩)并搜索哈希。