数据库
首页 > 数据库> > Mysql全文索引

Mysql全文索引

作者:互联网

前言:
Mysql有诸多索引类型,本篇详解Mysql的全文索引。

使用全文索引之前我们先看一下使用全文索引的要求:

  1. MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引;
    2. MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引;
    3. 只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引。
    4. Mysql提供的全文索引不支持查询中文

在使用全文索引之前看一下自己的数据库的存储引擎 字段是否可以使用
该类型的索引有什么特殊之处?

|> 该类型的索引是为了解决 like "%文字%"这类违背了索引左原则的数据查询的匹配问题.| |

适用业务:
查询的时候是否包含某个字符串

select * from 表名 where 字段名 like “%字符串%”

此时不能建立普通的索引,因为违背了左原则,建立了索引也会使用不了,
这个时候就用到了全文索引
下面这条Sql语句就是建立全文索引

alter table 表名 add fulltext 索引名 (字段名);

Tip:全文索引建立后like查询语句是不会使用索引的,如果使用索引就要使用全文索引自己的查询语句

select * from 表名 where match(字段名) against("%字符串%")

这里的match()和against()都是全文索引的查询函数
match()里面填写的是字段名
against()里面填写的是要查询的字符串
Tip:match() against()会返回一个0~1之间的值,也就是匹配度,查询出来的数据会按照匹配度从高至低排序

因为全文索引无法用中文,并不常用,所以就讲解到这里,了解一下就好

标签:全文索引,against,查询,索引,match,Mysql,字段名
来源: https://blog.csdn.net/weixin_44190037/article/details/100024540