我希望有一个特定的列是唯一的,并且还针对搜索和排序进行了优化。同时,同一列应具有全文搜索功能。我是否应该在此列上将所有三种索引类型(唯一、索引和全文)一起添加?
请帮助和感谢。
--编辑
感谢@Fuujin的快速评论。
如果我有以下索引,则无需再在它们上添加"索引"索引,对吗?
ALTER TABLE `mytable` ADD UNIQUE (`column_1`, `column_2`);
一列:
UNIQUE(x)
FULLTEXT(x)
添加INDEX
将是多余的,因为UNIQUE
是一个INDEX
。
两列:
UNIQUE(x,y) -- the order depend on what your queries look like (see below)
FULLTEXT(x,y)
FULLTEXT(x), FULLTEXT(y) -- may need these (see below)
WHERE x > 5 AND y = 2
需要(y,x)
订单
如果您只搜索两列中的一列,例如 MATCH(x) AGAINST(...)
,那么 InnoDB 而不是 MyISAM 需要额外的FULLTEXT
索引。