mysql like模糊查询提高效率的奇葩方法!不知道有没有人这么干过?

一张表大概40万左右的数据,用like模糊查询title字段,很慢,title字段已经建立了索引,mysql 对 someTitle% 这样的模糊查询在有索引的前提下是很快的。
所以下面这两台sql语句差别就很大了 
$sql1 = "...... title like someTitle%" (话费0.001秒)
$sql2 = "...... title like %someTitle%" (话费0.8秒)
这两句的效率相差了800倍,这很可观啊。
所以我有个想法:在不用分词的方法的前提下,把存储的title字段,加一个特别的前缀,比如"im_prefix",比如一条记录的title="我是标题党",那么存储的时候就存储为"im_prefix我是标题党"。
这样一来,我们要模糊查找"标题党"这个关键词的时候,就把sql写成这样:

$sql1 = "...... title like im_prefix%标题党%" (花费0.001秒),前台显示数据的时候,自然把取到的title过滤掉"im_prefix"这个前缀了。

mysql 高效模糊查询 代替like

查询效率比如果: table.field like '%AAA%' 可以改为 locate ('AAA' , table.field) > 0  返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.

mysql> select LOCATE('bar', 'foobarbar'); -> 4 mysql> select LOCATE('xbar', 'foobar'); -> 0

该函数是多字节可靠的。

返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。

mysql> select LOCATE('bar', 'foobarbar',5); -> 7

这函数是多字节可靠的。

mysql like模糊查询like %someTitle%效率低下相关推荐

  1. mysql优化模糊查询_MySQL的LIKE模糊查询优化

    %xxx%这种方式对于数据量少的时候,我们倒可以随意用,但是数据量大的时候,我们就体验到了查询性能的问题,像老化的车子艰难趴着坡一样,并且这种方式并未使用到索引,而是全表扫描 mysql 高效模糊查询 ...

  2. mysql的模糊查询以及时间类型整理

    最近项目需求做模糊查询,大家也都知道,模糊查询是挺简单的,但难的是如何提升效率,,,当然在此咱们不说其他高深的,只针对mysql的模糊查询 1.mysql中除了like模糊查询,还有另一种模糊查询,F ...

  3. mysql模糊查询单词_你知道什么是 MySQL 的模糊查询?

    原标题:你知道什么是 MySQL 的模糊查询? 作者 | luanhz 责编 | 郭芮 本文对MySQL中几种常用的模糊搜索方式进行了介绍,包括LIKE通配符.RegExp正则匹配.内置字符串函数以及 ...

  4. mysql中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示.  比如 SELECT * FROM [user ...

  5. mysql 中模糊查询的四种用法介绍

    下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...

  6. mysql中模糊查询的四种用法

    转载自  https://www.cnblogs.com/songfayuan/articles/7290158.html 下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可 ...

  7. mysql 4 中文模糊查询_解决MySQL中文模糊查询问题

    解决MySQL中文模糊查询问题: 我们在MySQL中进行中文模糊查询时,经常会返回一些与之不相关的记录,比如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在.对于此 ...

  8. mysql查询单个员工信息_PHP+MySQL实现模糊查询员工信息功能示例

    本文实例讲述了PHP+MySQL实现模糊查询员工信息功能.分享给大家供大家参考,具体如下: 一.代码 注意两点: 1.用Notepad+编辑时,格式选择:[编码字符集]->[中文]->[g ...

  9. mysql解决模糊查询包含关系

    mysql解决模糊查询包含关系 后台要根据期限筛选查询时如果用like, SELECT * from t_user_accord_invest t where t.invest_period like ...

  10. mysql中文模糊查询_解决MySQL中文模糊查询问题

    解决MySQL中文模糊查询问题: 我们在MySQL中进行中文模糊查询时,经常会返回一些与之不相关的记录,比如查找%a%时,返回的可能有中文字符,却没有a字符存在.对于此问题目前发现一种方法可以很方便解 ...

最新文章

  1. 第一个SpringBoot程序(详细解析Grounp、Artifact等项目信息含义)
  2. 人工智能能否跨越意识鸿沟?
  3. 为什么要开这个博客?我在这个博客里写什么?
  4. SQL Server 的通用分页显示存储过程
  5. Shell-脚本只能运行1次
  6. WLAN定位技术——(无线信号定位2)
  7. 深度适配云环境,火山引擎推出云操作系统veLinux
  8. Java网络通信编程从基础到框架
  9. 简明python教程-Python简明教程
  10. Vue中使用watch来监听数据变化
  11. 平滑滤波器模板尺寸与平滑效果的关系_冲压模具丨折弯尺寸、毛刺、、卯合、滑块不顺的根源...
  12. 栈实现二叉树的前中后序遍历
  13. 关于SAIL-IMX6Q和SAIL-IMX7D和SAIL-AM335X的环境变量配置文件
  14. 企业财务分析方法-杜邦分析法、沃尔评分法、Z值模型
  15. php中switch使用
  16. 电脑只能上微信不能打开网页_怎么回事?我的电脑浏览器打不开网页,但微信、QQ却又能用?...
  17. win7旗舰版6l打印机咋安驱动_打印机安装不了,教您解决打印机驱动安装不了
  18. 【防诈骗】QQ账号安全检测工具-腾讯出品
  19. Android实用视图动画及工具系列之九:漂亮的图片选择器,高性能防崩溃图片选择工具
  20. working directory is not part of a module

热门文章

  1. MySQL5.5的安装步骤
  2. 动态规划背包问题之完全背包详解
  3. python爬虫爬取网站视频_python3爬虫爬取视频(一)
  4. PLSQL Developer 没有64位版本 + 找不到 msvcr71.dll
  5. 电压和电流的有效值、瞬时值、平均值、最大值及其关系
  6. python环境调用OpenModelica模型并进行仿真计算
  7. Java批量png转jpg图片格式
  8. 在达梦数据库下创建数据库
  9. 51单片机与HC-05蓝牙模块(手机蓝牙控制小灯之小白速成)
  10. CTWing-中国电信IoT物联网平台设备接入实战