» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[电脑] 问个mysql数据库相关问题

办公室书报借阅系统需要优化,某张表容量大小10G左右,其中主要字段是summary,类型是mediumtext,内容是大段的utf8格式汉字书报简介。
现在关键字搜索用的是like '%xxx%',查一次要跑15min+,请问如何在软件层面优化能使全文搜索大幅减小检索时间?

[ 本帖最后由 overall 于 2021-12-20 13:46 编辑 ]


TOP

把频繁查询的内容推到缓存上去



本帖最近评分记录
  • overall 激骚 +1 感谢分享 2021-12-20 14:45

TOP

posted by wap, platform: iPhone
如果是用PostgreSQL可以考虑新增tsvector列,专门处理这种情况。
但是估计My SQL没有此类功能。


TOP

posted by wap, platform: iPhone
查了一下MySQL有 Full-Text Search Functions
本帖最近评分记录
  • overall 激骚 +1 感谢分享 2021-12-20 14:45

TOP

like '%xxx%' 这样 index就么用了
试试
like 'xxx%'

第二就是折腾一次把mediumtext的field 做一个fulltext index

如果对搜索要求很高 要来回搜
还有个办法是mysql前面家一个专门的搜索引擎 elasticsearch 然后app 和elastic叫流
本帖最近评分记录
  • overall 激骚 +1 感谢分享 2021-12-20 14:45

TOP

es ,mysql 异构到es里。找一个定时任务,定时同步就行。

TOP

posted by wap, platform: VIVO
搞个sphinx全文索引引擎啊。秒搜
本帖最近评分记录
  • overall 激骚 +1 恭喜发财 2021-12-22 00:27

TOP

posted by wap, platform: iPhone
mysql大概5.7.x后的某个版本开始支持中文的fulltext索引,但如果使用频率高长远来说还是得上es
本帖最近评分记录
  • overall 激骚 +1 恭喜发财 2021-12-22 00:28

TOP

posted by wap, platform: Android
使用canal之类的工具将mysql数据实时同步至es中,之后使用es检索。
本帖最近评分记录
  • overall 激骚 +1 恭喜发财 2021-12-22 00:28

TOP

posted by wap, platform: VIVO
数据量和并发大的话,还是用es做全文检索引擎吧。

TOP

发新话题
     
官方公众号及微博