快速了解全文索引 1. 先一句话定义普通索引只能精准匹配/前缀匹配全文索引可以按「关键词分词搜索」适合搜文章、标题、内容里的某个词。比如你搜苹果手机普通like %苹果手机%不走索引、巨慢全文索引能分词直接匹配包含「苹果」「手机」的文本走索引很快。2. 先对比普通模糊查询有多无力select * from article where title like %程序员%;前后百分号%xxx%索引直接失效只能全表扫描数据一多卡死不能分词不能按相关性排序这时候就需要全文索引。3. 全文索引到底是什么它是一种特殊索引专门给长文本标题、文章、简介用会把文本自动分词拆成一个个词语把每个词语和对应的行关联存在索引里查询时按关键词匹配、按相关性权重排序支持字段类型CHAR、VARCHAR、TEXT都可以建全文索引。4. 怎么建、怎么用建全文索引-- 单字段CREATE FULLTEXT INDEX idx_title ON article(title);-- 多字段一起搜标题内容CREATE FULLTEXT INDEX idx_all ON article(title, content);查询语法不用like用MATCH() AGAINST()select *from articlewhere MATCH(title) AGAINST (程序员);5. 全文索引能干啥分词匹配搜「苹果电脑」能匹配包含「苹果」「电脑」的文章不用完整匹配。按相关度自动排序关键词出现多的排前面不用自己写排序逻辑。避开 % 前后模糊不再全表扫描走全文索引速度快很多。支持布尔模式可以搜 包含、不包含、必须有某词程序员 -Java 必须有程序员不能有Java6. 限制必记MySQL 自带全文索引中文分词很烂默认分词器按空格、标点拆分单词对英语天然友好但中文词与词之间没有空格它没法自动识别词语边界所以中文基本不好用。实际开发不用MySQL全文索引中文搜索都用Elasticsearch、Solr专门做全文检索。有最小词长限制太短的词默认不收录搜不到。7. 极简总结普通索引适合精准匹配、范围查询、前缀匹配全文索引适合文章、标题、长文本关键词搜索自动分词、按相关度排序like %xxx%不走索引全文索引可以走索引MySQL自带中文分词弱企业都用 ES 替代