如果我在MySQL表中有一个列short_title
并且它被定义为UNIQUE,那么我是否还必须添加FULLTEXT才能快速搜索?或者UNIQUE是否已经保证它可以快速搜索(没有全表扫描)?
谢谢,Boda Cydo
答案 0 :(得分:3)
UNIQUE
将使用基础索引找到逐字short_title
。
如果您需要单词匹配(而不是逐字匹配),请使用FULLTEXT
索引。
另请注意,默认情况下,B-Tree
对MyISAM
列的VARCHAR
索引会受到密钥压缩。这可以减慢对接近字母结尾的标题的搜索速度:
最后,VARCHAR
键的大小往往很大。
对于最快的逐字搜索,您应该在MD5
列中存储标题的BINARY(16)
哈希,在其上创建UNIQUE
索引(禁用密钥压缩)并搜索哈希。