1. 程式人生 > >關於MySQL資料庫中不支援中文檢索的一個解決方法---個人愚見

關於MySQL資料庫中不支援中文檢索的一個解決方法---個人愚見

最近一段時間一直和MySQL資料庫打交道,由於資料庫的海量資料(資料大小達到5G多),進行模糊查詢的時候使用like %xxx%,速度十分慢,影響使用者體驗,給資料庫新增索引的話,又因為在MySQL中使用like %xxx%,索引就會失效,不得已,通過在internet上海找資料,最後總結了一套方法。

首先,幾點說明

1、修改資料表的引擎格式為MyISAM

命令列為: alter table表名 type=MyISAM

2、mysql的全文索引只能用在char、varchar、text欄位上

3、對於大資料量,應該先載入資料,然後再新增全文索引

命令列為:altertable 表名add fulltext index

索引名(欄位名)

4、配置檔案

Windos下:在my.ini[mysqld]後面新增ft_min_word_len= 1

Linux下:在my.cof[mysqld]後面新增ft_min_word_len=1            

5、重新啟動mysql伺服器

停止命令列:net stop mysql,啟動命令列:net start mysql             

6、重新設定全文索引

命令列:REPAIR TABLE表名 QUICK;

7、使用方法

命令列: select * from表名 where MATCH(欄位名) AGAINST(‘關鍵字’ in boolean mode);

  至此,我們就完成了全文索引的建立和使用,結果如何呢,我針對我的資料庫做了一個對比,我的資料庫裡面全是視訊檔案,按照關鍵字搜尋,使用全文檢索前後的耗時對比如下表:

關鍵字

全文檢索使用前耗時(單位:)

全文檢索使用後耗時(單位:)

康佳

34

0.4

哈工大

38

0.7

倚天屠龍記

40

4.4

喜羊羊

30

0.2

趙薇

41

4.3

趙本山

11

3.7

鄉村愛情故事

23

0.7

北京愛情故事

37

1.8

大秦帝國

37

0.8

讓子彈飛

36

2.8

龍門飛甲

39

2.4

暮光之城

45

1.6

功夫熊貓

40

2.3

英雄

12

4.7

金剛

17

0.8

濟公

41

1.1

白蛇傳說

41

0.8

甄嬛傳

41

1.6

北京青年

41

1.4

愛情公寓

47

2.2

笑傲江湖

39

4.2

步步驚心

41

5.2

武林外傳

41

1.8

 通過上面的對比,可以看到,檢索速度提高了10-40倍。