RDS MySQL 全文檢索索引相關問題的處理

來源:互聯網
上載者:User

標籤:

 

RDS MySQL 全文檢索索引相關問題

1. RDS MySQL 對全文檢索索引的支援

2. RDS MySQL 全文檢索索引相關參數

3. RDS MySQL 全文檢索索引中文支援

3.1 MyISAM 引擎表

3.2 InnoDB 引擎表

4. like ‘%xxx%‘ 和全文檢索索引的比較

4.1 like ‘%xxx%‘

4.2 全文檢索索引

5. ft_query_expansion_limit 參數作用

1. RDS MySQL 對全文檢索索引的支援

RDS MySQL 5.5 僅 MyISAM 引擎表支援全文索引,RDS MySQL 5.6 版本 MyISAM 和 InnoDB 引擎都支援全文索引。

 

2. RDS MySQL 全文檢索索引相關參數

可以在控制台  參數設定來設定下列參數。

# 參數名稱 預設值 最小值 最大值 作用
1 ft_min_word_len 4 1 3600 MyISAM 引擎表全文索引包含的最小詞長度
2 ft_query_expansion_limit 20 0 1000 MyISAM引擎表使用 with query expansion 進行全文檢索搜尋的最大匹配數
3 innodb_ft_min_token_size 3 0 16 InnoDB 引擎表全文索引包含的最小詞長度
4 innodb_ft_max_token_size 84 10 84 InnoDB 引擎表全文索引包含的最大詞長度
show global variables like ‘ft_%‘; --查看 MyISAM 引擎表全文檢索索引相關參數show global variables like ‘innodb_ft%‘; --查看 InnoDB 引擎表全文檢索索引相關參數
3. RDS MySQL 全文檢索索引中文支援

MyISAM 引擎表和 InnoDB 引擎表(需 RDS MySQL 5.6 版本)都支援中文全文檢索索引。

 

3.1 MyISAM 引擎表

MyISAM 引擎表需要將 ft_min_word_len 設定為小於等於需要檢索的最小分詞長度,設定完畢後建議重新建立表上已有的全文索引;對於中文檢索,建議將 ft_min_word_len 設定為 1。

CREATE TABLE `my_ft_test_02` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` text,  PRIMARY KEY (`id`),  FULLTEXT KEY `idx_ft_name` (`name`)) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;--重建全文索引步驟:alter table my_ft_test_02 drop key idx_ft_name; --刪除已有的全文索引alter table my_ft_test_02 add fulltext key idx_ft_name (name); --重新添加全文索引
3.2 InnoDB 引擎表

InnoDB 引擎表需要將 innodb_ft_min_token_size 設定為小於等於需要檢索的最小分詞長度,設定完畢後建議重新建立表上已有的全文索引;對於中文檢索,建議將 ft_min_word_len 設定為 1。

CREATE TABLE `my_ft_test_01` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `name` text,  PRIMARY KEY (`id`),  FULLTEXT KEY `idx_ft_name` (`name`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;--重建全文索引的步驟:alter table my_ft_test_01 drop key idx_ft_name; --刪除已有的全文索引alter table my_ft_test_01 add fulltext key idx_ft_name (name); --重新建立全文索引
4. like ‘%xxx%‘ 和全文檢索索引的比較 4.1 like ‘%xxx%‘

對於資料量比較小,查詢條件無法分詞的情況下,可以考慮使用 like ‘%xxx%‘ 來進行查詢。但是由於 like  ‘%xxx%‘ 這樣的條件無法使用欄位上的索引,因此通常執行時間較長,會耗費比較多的資源;建議結合查詢其他條件來使用,這樣可以盡量使用其他欄位的索引來加速查詢。

 

4.2 全文檢索索引

全文檢索索引本身是按 進行匹配,因此返回的結果會和 like ‘%xxx%‘ 的方式有所區別

 

5. ft_query_expansion_limit 參數作用

MySQL 全文檢索索引支援擴充檢索,具體請參考 帶查詢擴充的全文檢索索引 

參數 ft_query_expansion_limit 的作用是指定MyISAM引擎表使用with query expansion進行全文檢索搜尋的最大匹配數,下面以一個例子來說明其作用。

參數 ft_query_expansion_limit 當前設定為 20:

當前表中相關的記錄情況:

使用查詢擴充的結果:

 

 

如果問題還未能解決,請聯絡售後支援人員。

 jpg改rar

RDS MySQL 全文檢索索引相關問題的處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.