日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 5.6.4以上版本innodb支持全文索引的测试

發布時間:2025/3/8 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 5.6.4以上版本innodb支持全文索引的测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對于mysql 5.6.4以上版本innodb支持全文索引的測試

在mysql官網,innodb引擎在5.6.4版本提供了對全文索引的支持,筆者對此做了測試,發現對中文全文檢索的支持依然不理想,但卻確實提供了對英文的全文支持。

12.9.5?Full-Text?Restrictions Full-text?searches?are?supported?for?InnoDB?and?MyISAM?tables?only.?FULLTEXT?index?support?for?InnoDB?tables?requires?MySQL?5.6.4?or?higher.

測試過程如下:

1、版本選擇,選5.6.27 ?版。

2、安裝完成后,添加全文索引進行測試,表引擎為Innodb

? (1)修改ft_min_word_len參數值為1(默認是4,2個漢字)調整全文索引檢索字段的最小長度為1個字節


mysql>?show?variables?like?'%ft_min_word_len%';+-----------------+-------+ |?Variable_name???|?Value?| +-----------------+-------+ |?ft_min_word_len?|?1?????| +-----------------+-------+1?row?in?set?(0.00?sec)


 (2)對表A的content列添加全文索引;

1 >?alter?table?ask_questions?add?fulltext?ind_ask_questions_content(content);


查看

1 >show?index?from?ask_questions;



mysql>?show?index?from?ask_questions;+---------------+------------+----------------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ |?Table?????????|?Non_unique?|?Key_name?????????????????????????|?Seq_in_index?|?Column_name??????|?Collation?|?Cardinality?|?Sub_part?|?Packed?|?Null?|?Index_type?|?Comment?|?Index_comment?| +---------------+------------+----------------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ |?ask_questions?|??????????1?|?ind_ask_questions_content_cft????|????????????1?|?content??????????|?NULL??????|???????????1?|?????NULL?|?NULL???|??????|?FULLTEXT???|?????????|???????????????| +---------------+------------+----------------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+9?rows?in?set?(0.00?sec)


模糊匹配查詢,看看包含關鍵字的行數:

1 >?select?count(*)?from?ask_questions?where?content?like?'%xxx%';


?一共有182行,其中包括四種情況:'%xxx%','%xxx','xxx%','xxx'。

在全文索引查看的時候只能對 'xxx' 這種情況進行檢索,其他的行由于漢字與英文字母的斷字不一樣而忽略掉了;?

1 select?*?from?ask_questions?where?MATCH(content)?AGAINST?('好玩嗎')?order?by?id?limit?10;


但是其中的行,比如不被空格,"?"等隔開的行,是不會被檢索出來的:

1 >?select?*?from?ask_question_bak?where?content?like?'%好玩嗎%'?limit?10;


?

?

我們可以通過查看id列看出來差別;

3、myisam中的中文全文索引測試;

對于mysql自帶的功能,也是一樣的,支持并不是很好。

?

4、myisam安裝mysqlcft插件,測試對中文全文索引的支持;

從coder.google下載mysqlcft,下載地址:https://code.google.com/p/mysqlcft/downloads/list?

(1) 解壓,安裝plugin。

查看插件目錄:

1 >?show?variables?like?'%plugin%';


+---------------+---------------------------------+ |?Variable_name?|?Value???????????????????????????| +---------------+---------------------------------+ |?plugin_dir????|?/usr/local/mysql56//lib/plugin/?|+---------------+---------------------------------+

(2)解壓,把mysqlcfg.so文件cp到這個目錄下,安裝plugin

1 >?INSTALL?PLUGIN?mysqlcft?SONAME?'mysqlcft.so';


(3)查看。

1 >?select?*?from?mysql.plugin;


+----------+-------------+ |?name?????|?dl??????????| +----------+-------------+ |?mysqlcft?|?mysqlcft.so?| +----------+-------------+

安裝mysqlcft插件成功;

測試查看查詢數目與模糊查詢一致,效率提高了300倍左右;





? ? ? 本文轉自crazy_charles 51CTO博客,原文鏈接:http://blog.51cto.com/douya/1732130,如需轉載請自行聯系原作者




總結

以上是生活随笔為你收集整理的mysql 5.6.4以上版本innodb支持全文索引的测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。