MYSQL 百萬條記錄全文檢索中文解決方案

2021-07-24 23:36:49 字數 794 閱讀 6927

mysql最適合用於小型運用的開發。遇到了單錶上百萬記錄。用select * from *** where *** like '%***%';去查詢,結果效率低到難以忍受。五十萬條記錄竟然用了三十秒才出結果!這對於任何運用都是沒辦法忍受的。對應大資料量查詢的時候,很多資料庫是支援全文檢索的。

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

alter table song engine=myisam;

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

alter table add fulltext index(***);

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

alter table add fulltext index(***,***x);

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

select * from *** where match(***) against('nnn') ;

或者多欄位:

select * from song where match(***,***) against('nnn');

但是,其實這個時候

中文是沒辦法得到結果的!

應為mysql目前只支援英文本元的全文搜尋,這又叫我蛋疼了一下。後來看到乙個**說是按照把中文轉化為拼音,就可以用英文檢索對中文進行檢索了。看了一下拼音的思路以後我就有了乙個注意,

在表裡面為每乙個需要檢索的字段對應新增乙個拼音字段,檢索的時候直接對拼音檢索就可以了

MySQL中的全文檢索

說起資料庫,mysql最適合用於小型運用的開發。最近想弄乙個簡單的 玩一下,資料庫是以前在網上爬去的。資料不是特別多,但是也不少,查了一下一共有六十多萬條歌曲的記錄。既然是做 的話,首先要有乙個搜尋的功能,至少要能夠搜尋你有的歌曲吧。由於以前沒有怎麼認真弄過sql查詢的問題,所以還是用最簡單的方法去...

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索引的表中,然...