全文索引詳解

2021-09-26 09:43:45 字數 1038 閱讀 9834

前言:

mysql有諸多索引型別,本篇詳解mysql的全文索引。

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

1. mysql 5.6 以前的版本,只有 myisam 儲存引擎支援全文索引;

2. mysql 5.6 及以後的版本,myisam 和 innodb 儲存引擎均支援全文索引;

3. 只有欄位的資料型別為 char、varchar、text 及其系列才可以建全文索引。

4. mysql提供的全文索引不支援查詢中文

在使用全文索引之前看一下自己的資料庫的儲存引擎 字段是否可以使用

該型別的索引有什麼特殊之處?

*1.該型別的索引是為了解決 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之間的值,也就是匹配度,查詢出來的資料會按照匹配度從高至低排序

mysql全文索引的坑 MySQL全文索引問題

我有乙個包含以下資料的 文章 mysql select from articles id title body 1 mysql tutorial dbms stands for database 2 how to use mysql well after you went through a 3 o...

建立全文索引

建立全文索引 在進行全文檢索之前,必須先建立和填充資料庫全文索引。為了支援全文索引操作,sql server 7.0新增了一些儲存過程和transact sql語句。使用這些儲存過程建立全文索引的具體步驟如下 括號內為呼叫的儲存過程名稱 1.啟動資料庫的全文處理功能 sp fulltext data...

mysql全文索引

了解 solr 之後 發現全文索引也能做檢索 故了解了下 筆記如下 建立全文索引 alter table table add fulltext index fulltext table 列1 列2 查詢方式 select from table where match 列1 列2 against 查詢...