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 全文检索相关问题的处理的更多相关文章

  1. RDS For MySQL 字符集相关说明

    https://help.aliyun.com/knowledge_detail/41706.html?spm=5176.7841698.2.9.F5YjI5 字符序命名规则 字符集相关 MySQL  ...

  2. MySQL全文检索初探

    本文目的 最近有个项目需要对数据进行搜索功能.采用的LAMP技术开发,所以自然想到了MySQL的全文检索功能.现在将自己搜集的一些资料小结,作为备忘. MySQL引擎 据目前查到的资料,只有MyISA ...

  3. RDS MySQL InnoDB 锁等待和锁等待超时的处理

    https://help.aliyun.com/knowledge_detail/41705.html 1. Innodb 引擎表行锁等待和等待超时发生的场景 2.Innodb 引擎行锁等待情况的处理 ...

  4. RDS MySQL内存管理

    官方文档地址:https://help.aliyun.com/product/26090.html?spm=5176.7920929.1290474.7.2c6f4f7bACaToi 官方文档地址:h ...

  5. RDS MySQL 空间问题的原因和解决

    来源:https://help.aliyun.com/knowledge_detail/41739.html RDS MySQL 空间问题的原因和解决 更新时间:2016-07-22 17:20:14 ...

  6. 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 ...

  7. PHP+mysql数据库开发搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

    PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robb ...

  8. RDS MySQL 连接数满情况的处理

    RDS MySQL 连接数满情况的处理 RDS MySQL 连接数满有2种情况 1. 空闲连接过多 原因: 应用使用长连接模式 - 对于长连接模式(比如Java应用),应用侧应该配置连接池.连接池的初 ...

  9. RDS——mysql主从

    测试一:RDS主 RDS从   只需要创建一个RDS数据库实例   1.版本 RDS:5.6.21   2.操作步骤   选中被操作的数据--->点击实例操作---->创建只读副本---& ...

随机推荐

  1. python读写文件时中文的转码问题

    读写文件都要将中文转为unicode字符. 读文件: u = unicode(s, 'gbk') 这里不能使用encode 写文件: u = encode('utf')

  2. Icon Font的转换

    Icon Font是用于网页的纯色图标,这里引用一张网络图片: 由于体积小,易维护等特点,IconFont应用非常广泛. 这里推荐一个转换器,通过Upload一个后缀ttf的字体文件,可以反解出文件下 ...

  3. Effective C++ -----条款32:确定你的public继承塑模出is-a关系

    “public继承”意味is-a.适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derive class对象也都是一个base class对象 ...

  4. ASM:《X86汇编语言-从实模式到保护模式》第七章应用例:用adc命令计算1到1000的累加

    在16位的处理器上,做加法的指令是add,但是他每次只能做8位或者16位的加法,除此之外,还有一个带进位的加法指令adc(Add With Carry),他的指令格式和add一样,目的操作数可以是8位 ...

  5. vs2010 快捷键大全

    vs2010 快捷键大全 VS2010版快捷键 Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 ...

  6. 【leetcode】Best Time to Buy and Sell (easy)

    题目: Say you have an array for which the ith element is the price of a given stock on day i. If you w ...

  7. WEB前端开发学习:源码canvas 雪

    WEB前端开发学习:源码canvas 雪 双旦节要到了,程序员们为了响应气氛,特别用代码制作了动态雪花,WEB前端开发学习的初学者们一起跟着案例做一遍吧! <!DOCTYPE html> ...

  8. oracle TIMESTAMP日期相减

    select extract(day from inter) * 24 * 60 * 60 + extract(hour from inter) * 60 * 60 + extract(minute ...

  9. 最小集合(51nod 1616)

    A君有一个集合. 这个集合有个神奇的性质. 若X,Y属于该集合,那么X与Y的最大公因数也属于该集合. 但是他忘了这个集合中原先有哪些数字. 不过幸运的是,他记起了其中n个数字. 当然,或许会因为过度紧 ...

  10. Android高性能ORM数据库DBFlow入门

    DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点.同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后.基于注解,使用 ...