MySQL建立全文索引

2021-08-15 06:13:14 字數 1471 閱讀 6412

使用索引時資料庫效能優化的必備技能之一。在

mysql資料庫中,有四種索引:聚焦索引(主鍵索引)、普通索引、唯一索引以及我們這裡將要介紹的全文索引(funlltext index)。

全文索引(也稱全文檢索)是目前

搜尋引擎

在mysql中,建立全文索引相對比較簡單。例如:我們有乙個文章表(article),其中有主鍵id(id)、文章標題(title)、文章內容(content)三個字段。現在我們希望能夠在title和content兩個列上建立全文索引,article表及全文索引的建立sql語句如下:

create table `article` (

`id` int(10) unsigned not null auto_increment,

`title` varchar(200) default null,

`content` text,

primary key (`id`),

fulltext key `title` (`title`,`content`)

) engine=myisam default charset=utf8;

上面就是在建立表的同時建立全文索引的sql示例。此外,如果我們要給已經存在的表的指定字段建立全文索引,同樣以article表為例,我們可以使用如下sql語句進行建立:

alter table article add fulltext index fulltext_article(title,content);

在mysql中建立全文索引之後,現在就該了解如何使用了。眾所周知,在資料庫中進行模糊查詢是使用like關鍵字進行查詢的,例如:

select * from article where content like 

『%查詢字串%』;

那麼,我們在使用全文索引也這樣使用嗎?當然不是,我們必須使用特有的語法才能使用全文索引進行查詢,例如,我們想要在article表的title和content列中全文檢索指定的查詢字串,我們可以如下編寫sql語句:

select * from article where match(title,content) against (

『查詢字串』);

強烈注意:mysql自帶的

全文索引只能用於資料庫引擎為myisam的資料表

,如果是其他資料引擎,則全文索引不會生效。此外,

mysql自帶的全文索引只能對英文進行全文檢索,目前無法對中文進行全文檢索

。如果需要

對包含中文在內的文字資料進行全文檢索,我們需要採用sphinx(斯芬克斯)/coreseek技術來處理中文。

注:目前,使用mysql自帶的全文索引時,

如果查詢字串的長度過短將無法得到期望的搜尋結果。mysql全文索引所能找到的詞預設最小長度為4個字元

。另外,如果查詢的字串包含停止詞,那麼該停止詞將會被忽略。

注:如果可能,請盡量先建立表並插入所有資料後再建立全文索引,而不要在建立表時就直接建立全文索引,因為前者比後者的全文索引效率要高。

MySQL建立全文索引

使用索引時資料庫效能優化的必備技能之一。在 mysql資料庫中,有四種索引 聚焦索引 主鍵索引 普通索引 唯一索引以及我們這裡將要介紹的全文索引 funlltext index 全文索引 也稱全文檢索 是目前 搜尋引擎 在mysql中,建立全文索引相對比較簡單。例如 我們有乙個文章表 article...

mysql 全文索引 重建 mysql建立全文索引

使用索引時資料庫效能優化的必備技能之一。在mysql資料庫中,有四種索引 聚焦索引 主鍵索引 普通索引 唯一索引以及我們這裡將要介紹的全文索引 funlltext index 在mysql中,建立全文索引相對比較簡單。例如 我們有乙個文章表 article 其中有主鍵id id 文章標題 title...

建立全文索引

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