为什么要设置 Mysql 的 ft_min_word_len=1-阿里云开发者社区

开发者社区> 数据库> 正文

为什么要设置 Mysql 的 ft_min_word_len=1

简介: form: http://bbs.phpcms.cn/thread-73186-1-1.html //============================================== 为什么要设置 Mysql 的 ft_min_word_len=1 ? 从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。

form: http://bbs.phpcms.cn/thread-73186-1-1.html

//==============================================


为什么要设置 Mysql 的 ft_min_word_len=1 ?

从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间 商大部分可能并没有注意到这个问题,没有修改 Mysql 的默认设置。

      为什么要用全文索引呢?

      一般的数据搜索 都是用的SQL 的 like 语句,like 语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数据库 崩溃。这也就是为什么很多程序 都只提供标题搜索的原因了,因为如果搜索内容,那就更慢了,几万数据就跑不动了。

     Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章 预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。

     如果您使用的是自己的服务器 ,请马上进行设置,不要浪费了这个功能。

     如果您使用的是虚拟主机,请马上联系空间商修改配置。首先,Mysql 的这个默认值对于中文来说就是一个错误的设置,修改设置等于纠正了错误。其次,这个配置修改很简单,也就是几分钟的事情,而且搜索效率提高也降低了空间商数据库宕掉的几率。 如果你把本篇文章发给空间商,我相信绝大部分都会愿意改的。


    设置方法:

    请联系服务器管理 员修改 my.ini (Linux 下是 my.cnf ) ,在 [mysqld] 后面加入一行“ft_min_word_len=1 ”,然后重启Mysql,再登录 网站后台 (模块管理->全站搜索)重建全文索引,否则将无法使用全站搜索功能。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章