創建索引(MySQL 5.7.6后全文件索引可用WITH PARSER ngram,針對中文,日文,韓文)
ALTER TABLE 表 ADD FULLTEXT 索引名 (`字段`) WITH PARSER ngram;或者CREATE FULLTEXT INDEX 索引名 ON 表 (`字段`) WITH PARSER ngram;
查詢方法
select * from 表 where match(字段名) against('關鍵詞');
注意
- 只能在類型為CHAR、VARCHAR或者TEXT的字段上創建全文索引。
- 全文索引只支持InnoDB和MyISAM引擎。
- MATCH()函數使用的字段名,必須要與創建全文索引時指定的字段名一致。
多個字段索引,如MATCH (title,body)
?創建索引字段名也要是(title,body)
。如果要對title或者body字段分別進行查詢,就需要在title和body字段上分別創建新的全文索引,然后使用and查詢。 - MATCH()函數使用的字段名只能是同一個表的字段,因為全文索引不能夠跨多個表進行檢索。
- 如果要導入大數據集,使用先導入數據再在表上創建全文索引的方式要比先在表上創建全文索引再導入數據的方式快很多,所以全文索引是很影響TPS的。
- 添加索引的時候注意記得加上?
WITH PARSER ngram
,不然是不會生效的。