MySQL中的全文檢索

2021-07-12 05:27:09 字數 861 閱讀 8379

說起資料庫,mysql最適合用於小型運用的開發。最近想弄乙個簡單的****玩一下,資料庫是以前在網上爬去的。資料不是特別多,但是也不少,查了一下一共有六十多萬條歌曲的記錄。既然是做****的話,首先要有乙個搜尋的功能,至少要能夠搜尋你有的歌曲吧。由於以前沒有怎麼認真弄過sql查詢的問題,所以還是用最簡單的方法去查詢,但是這次遇到了單錶上百萬記錄。我用select * from song where songname like '%key%';去查詢,結果效率低到難以忍受。竟然用了三十多秒才出結果!這對於任何運用都是沒辦法忍受的。後來就想著去做sql查詢的優化,google了很久,試過了建立索引,改變表的結構等等都無濟於事啊。後來看到一篇專業文章寫道,其實對應大資料量查詢的時候,很多資料庫是支援全文檢索的。知道以後我立馬開始弄全文檢索:

首先我的表預設是:innodb,這種表的型別不支援全文檢索,所以要先改變其型別為myisam。

alter table song engine=myisam;

然後要在對應的要進行查詢的字段上面建立全文檢索的索引:

alter table add fulltext index(songname);

如果要同時對多個字段進行檢索可以這樣:

alter table add fulltext index(songname,singername);

這樣做好以後呢,就可以對錶進行全文檢索了,速度提公升是飛一般的感覺啊!現在的結果是秒出啊。可以這樣去檢索字段:

select * from song where match(singername) against('周杰倫') ;

或者多欄位:

select * from song where match(singername,songname) against('風雨');

mysql全文檢索

全文索引在 mysql 中是乙個 fulltext 型別索引。fulltext 索引用於 myisam 表,可以在 create table 時或之後使用 alter table 或 create index 在 char varchar 或 text 列上建立。對於大的資料庫,將資料裝載到乙個沒有...

mysql全文檢索

mysql到版本3.23.23時,開始支援全文檢索,通過語句select from match against 來在整個表中檢索是否有匹配的,全文索引是乙個定義為fulltext的型別索引,應用在myisam表中。值得一提的是對於乙個大的資料庫來說,把資料裝載到乙個沒有fulltext索引的表中,然...

mysql的全文檢索

mysql的全文檢索 mysql的全文檢索 mysql create table articles id int unsigned auto increment not null primary key,title varchar 200 body text,fulltext title,body ...