RDS MySQL 全文检索相关问题的处理
RDS MySQL 全文检索相关问题
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 全文检索相关问题的处理的更多相关文章
- RDS For MySQL 字符集相关说明
https://help.aliyun.com/knowledge_detail/41706.html?spm=5176.7841698.2.9.F5YjI5 字符序命名规则 字符集相关 MySQL ...
- MySQL全文检索初探
本文目的 最近有个项目需要对数据进行搜索功能.采用的LAMP技术开发,所以自然想到了MySQL的全文检索功能.现在将自己搜集的一些资料小结,作为备忘. MySQL引擎 据目前查到的资料,只有MyISA ...
- RDS MySQL InnoDB 锁等待和锁等待超时的处理
https://help.aliyun.com/knowledge_detail/41705.html 1. Innodb 引擎表行锁等待和等待超时发生的场景 2.Innodb 引擎行锁等待情况的处理 ...
- RDS MySQL内存管理
官方文档地址:https://help.aliyun.com/product/26090.html?spm=5176.7920929.1290474.7.2c6f4f7bACaToi 官方文档地址:h ...
- RDS MySQL 空间问题的原因和解决
来源:https://help.aliyun.com/knowledge_detail/41739.html RDS MySQL 空间问题的原因和解决 更新时间:2016-07-22 17:20:14 ...
- Configure Amazon RDS mysql to store Chinese Characters
Configure Amazon RDS mysql to store Chinese Characters https://dev.mysql.com/doc/refman/5.7/en/chars ...
- PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))
PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a) robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...
- RDS MySQL 连接数满情况的处理
RDS MySQL 连接数满情况的处理 RDS MySQL 连接数满有2种情况 1. 空闲连接过多 原因: 应用使用长连接模式 - 对于长连接模式(比如Java应用),应用侧应该配置连接池.连接池的初 ...
- RDS——mysql主从
测试一:RDS主 RDS从 只需要创建一个RDS数据库实例 1.版本 RDS:5.6.21 2.操作步骤 选中被操作的数据--->点击实例操作---->创建只读副本---& ...
随机推荐
- 树形dp汇总
HDU 1520 HDU 2196 Codeforces 219D POJ 1155
- NGUI实现Sprite裁切成圆形或者椭圆形(不完美)
先上效果 有个问题就是,UISprie用的Atlas的公用的材质,无法从当前要绘制的片段shader上获得uv百分比,所以当有其他的Sprite使用相同的Atlas时显示就有问题 其实Mesh是可以接 ...
- (转载)让XCode运行时自动更新资源
转自http://goldlion.blog.51cto.com/4127613/1351616 用过XCode的人都知道,XCode有一个臭名昭著的bug——除非你修改了源代码造成了重新编译,否则游 ...
- 1. EasyUI 学习总结(一)——对话框dialog
文章参考来源:http://www.cnblogs.com/xdp-gacl/p/4075079.html 感谢博主的分享,写得非常精细,我在这边给看过的做一个记录. 一.EasyUI下载 使用eas ...
- C#实现MD5加密
摘自:http://blog.csdn.net/shenghui188/archive/2010/03/28/5423959.aspx 方法一 首先,先简单介绍一下MD5 MD5的全称是message ...
- CCF 最大的矩形
问题描述 试题编号: 3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个 ...
- PHP try catch
本文转载自百度知道 http://zhidao.baidu.com/link?url=Wi5EOXIf12yBp9d_4VoFHCUFtlTPcZJ0sxidLspV6P7qAqYMap3IC6dXE ...
- [Android Pro] root用户删除文件提示:Operation not permitted
reference to : http://blog.csdn.net/evanbai/article/details/6187578 一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错, ...
- [Android Pro] static 和 Volatile 的区别
reference to : http://blog.sina.com.cn/s/blog_4e1e357d0101i486.html static也是各个业务方可以去全局修改: volatile是处 ...
- 命名空间 - PHP笔记
转: 概述 命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念,比如在操作系统中,目录用来将相关文件分组,对于目录中的文件来说,目录就扮演了命名空间的角色.这个原理应用到程序设计领域就是命 ...