ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 什么是全文索引 1. 其他索引是把字段的内容作为一个整体进行索引设计. 2. 全文索引,是把内容中的一些“单词”拆分出来作为索引字段使用. 类似我们有一篇作文,把作文中的一些关键字给获取出来当成是索引内容。 ![](https://box.kancloud.cn/e4369b012a74a0e4888321f8b36f14ea_1059x328.png) 全文索引可以帮助我们解决:**模糊查询不能使用索引的问题:** 例如: ~~~ select * from 表 where introduce like ‘%美国%’; //不会使用索引 ~~~ 语法: ~~~ alter table 表名 add fulltext key(字段); ~~~ 全文索引使用语法规则: ~~~ select * from 表 where match(字段) against('模糊内容'); //模糊内容外有引号,千万别使用 like,否则索引无效. ~~~ **注意:** mysql本身的全文索引在做模糊查询的时候会有“自身的考虑”,把一些不常见的特殊内容给设计为索引内容,一些生活等常见用语(what where how SQL等等)就不给设计为索引内容了。 #### 全文索引注意 1. 字段类型必须为varchar/char/text类型. 2. mysql 5.6.4之前只有Myisam支持,5.6.4之后则Myisam和innodb都支持. 3. mysql中的全文索引目前只支持英文(不支持中文),**如果需要支持中文可以使用sphinx,MySQL自带全文索引在国内基本不用**. 4. 生产活动中mysql的全文索引不常使用,可以通过sphinx代替. 5. mysql全文索引会自作聪明,对关键字的收录有自己的考虑。例如生活常用单词、频繁使用单词都不给创建索引(比如 for when where run等等)