#### 什么是全文索引
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等等)
- MySQL优化概述
- 存储引擎的选择
- innodb引擎
- myisam引擎
- memory引擎
- 查询需优化语句
- 通用查询日志
- 慢查询日志
- profile机制
- 索引
- 索引基本介绍
- 索引类型
- 索引管理语法
- 创建索引主要事项
- 执行计划
- 查看索引类型
- myisam索引数据结构
- innodb索引数据结构
- 索引覆盖
- 索引使用原则
- 列独立
- like查询
- 复合索引使用
- or运算都具有索引
- mysql智能选择
- 优化group by语句
- 前缀索引
- 全文索引
- 查询缓存
- 查询缓存操作
- 无缓存
- limit分页优化
- 分区
- 分区介绍
- list分区
- range分区
- hash分区
- key(键值)分区
- 分区管理
- 分表
- 分表介绍
- 水平分表
- 垂直分表
- MySQL锁机制
- 锁机制介绍
- 锁的几种形式
- 表锁操作
- 行锁操作
- 数据碎片与维护
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主从复制
- 介绍
- 读写分离