首页 > 数据库 >MYSQL 全文检索

MYSQL 全文检索

时间:2022-12-01 14:14:18浏览次数:34  
标签:quartz log sys 全文检索 数据量 MYSQL annotation

项目中有个日志表需,需求要对日志内容做模糊匹配,但是考虑到数据量会比较大,用like性能不高。查了一下可以用MYSQL自带的全文检索,并且小测试了一下。

创建全文检索字段,只有char、varchar、text、longtext才支持:

CREATE FULLTEXT INDEX annotation_index ON sys_quartz_log (annotation) WITH PARSER ngram;

其中 annotation 是字段名,sys_quartz_log 是表名。

查询的话我用的默认自然语言方式:

SELECT * FROM sys_quartz_log WHERE MATCH (annotation) AGAINST ('执行语句');

BOOLEAN模式,使用操作符,可以支持指定关键词必须出现或者必须不能出现或者关键词的权重高还是低等复杂查询:

SELECT * FROM sys_quartz_log WHERE MATCH (annotation) AGAINST ('执行语句' IN NATURAL LANGUAGE MODE);

测试使用like,执行时间0.065s:

 

 使用全文检索执行时间,0.027s。

 

 测试针对我目前的数据量而言,大概只有两三千数据,如果数据量更大,体现应该更明显。

标签:quartz,log,sys,全文检索,数据量,MYSQL,annotation
From: https://www.cnblogs.com/rolayblog/p/16941222.html

相关文章

  • pymysql.err.InterfaceError: (0, '')
    pymysql.err.InterfaceError:(0,'')背景自动化代码需要坚固开发服和测试服,但是又有一些固定数据(或者说是死数据),无法同时满足开发服和测试服,每次if...else...判断url......
  • 使用Docker恢复Mysql8备份的Data数据 - 诚哥博客
    前段时间公司数据库服务器崩溃启动不起来,经过我初步排查是/home目录挂载不上导致启动不起来,虽然通过注释/etc/fstab中的挂载信息,启动了,但是发现mysql数据有缺失,还好有例行......
  • MySQL数据库的定时备份与还原
    一.MySQL备份1.Cron是Linux的内置服务,可以用以下的方法启动、关闭这个服务:servicecrondstart//启动服务servicecrondstop//关闭服务servicecrondrestart/......
  • 一. 预装MySQL前的准备
    1.硬件标准化帮助公司和运维团队,选择最合适MySQL数据库运行的服务器硬件,从品牌、CPU、MEM、IO设备、网络设备、存储设备等各个层次进行合理建议.而不是上采购人员、......
  • 记录mysql服务突然不能启动,报错:windows无法启动MYSQL服务(位于本地计算机)错误1067进程
    发生这个问题的背景:在删除一些不用的数据库,然后点别的库突然报一些之前写sql时的错误,然后我就把mysql服务关了,当再点击启动时就报下边这个错了。又试了重启电脑仍然没有......
  • 1+N环境-分布式数据库mysql8系列故障重启问题处理
    1、背景多个业务连接异常,navicat连接数据库不稳定,连接进入数据库后也会出现卡死的,连接失败的报错2、问题分析2.1 问题描述:navicat、服务器中连接数据库均复现业务报告......
  • 1+N环境MySQL8.0.29/30版本BUG处理措施
    背景:前期安全漏扫后,1+N环境中部分MySQL8.0数据库由低版本通过upgrade方式升级到8.0.29版本,后又升级到8.0.30版本。此版本的upgrade升级方式,在执行altertableaddcolmun......
  • MySQL进阶实战7,查询的执行过程
    一、拆分查询将大查询拆分成小查询,每个查询功能完全一样,只是一小部分,每次只返回一小部分查询结果。比如在删除旧数据的时候,如果用一个大的语句一次性删的话,则可能需要一次性......
  • 【MySQL】Federated引擎与Federated Server访问远程数据
    文中使用的MySQL版本为5.6。之前我们有讲过在Oracle数据库中关于远程数据库的访问可以使用DBLinked来实现,那在MySQL中是否也存在类似的方式呢?答案是肯定的,在MySQL中若想访问......
  • MySQL进阶实战5,为什么查询速度会慢
    一、先了解一下MySQL查询的执行过程MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务、减少子......