导读


由于项目需要,要进行模糊查询,因为要匹配多个内容,原本由like改为regexp,后面测试查询2w数据发现,还是like效率高一些。

使用


1、改REGEXP正则查询

  1. SELECT
  2. count(*)
  3. FROM
  4. dept_manage
  5. WHERE
  6. deptCode IN ( '1', '2', '3', '4', '5')
  7. AND receiveTime >= '2019-01-01 00:00:00'
  8. AND receiveTime <= '2020-06-03 23:59:59'
  9. AND applyName NOT REGEXP '测试|aa|bb'
  10. AND projectName NOT REGEXP '测试|aa|bb';

image.png

  • 查询出来的数据消耗4.311s,数据在3w左右。

2、改LIKE模糊查询

SELECT
    count(*)
FROM
    dept_manage
WHERE
deptCode IN (    '1',    '2',    '3',    '4',    '5')
AND receiveTime >= '2019-01-01 00:00:00'
AND receiveTime <= '2020-06-03 23:59:59'
AND applyName NOT LIKE '%测试%'
AND applyName NOT LIKE '%aa%'
AND applyName NOT LIKE '%bb%'
AND projectName NOT LIKE '%测试%'
AND projectName NOT LIKE '%aa%'
AND projectName NOT LIKE '%bb%'

image.png

  • 查询出来的数据消耗1.207s,数据在3w左右。

总结


经验证,目前发现还是like的效率比regexp效率高一些。

END


搞定~