`

mysql --- 模糊查询like+%

阅读更多

 原文链接:http://rdc.taobao.com/team/jm/archives/1530

索引与优化like查询

1. like %keyword    索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全表扫描。

2. like keyword%    索引有效。

3. like %keyword% 索引失效,也无法使用反向索引。

====================================================================
1. 使用下面的函数来进行模糊查询,如果出现的位置〉0,表示包含该字符串。
查询效率比like要高。
如果: table.field like  ‘%AAA%’ 可以改为 locate (‘AAA’ , table.field) > 0

LOCATE(substr,str)
     
POSITION(substr IN str)
返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0。

使用instr
select count(*) from table t where instr(t.column,’xx’)> 0
这种查询效果很好,速度很快。

2. 查询%xx的记录

select count(c.c_ply_no) as COUNT

  from Policy_Data_All c, Item_Data_All i

 where c.c_ply_no = i.c_ply_no

   and i.C_LCN_NO like ’%245′

在执行的时候,执行计划显示,消耗值,io值,cpu值均非常大,原因是like后面前模糊查询导致索引失效,进行全表扫描


解决方法:这种只有前模糊的
sql可以改造如下写法

select count(c.c_ply_no) as COUNT

  from Policy_Data_All c, Item_Data_All i

 where c.c_ply_no = i.c_ply_no

   and reverse(i.C_LCN_NO) like reverse(‘%245′)

使用翻转函数+like前模糊查询+建立翻转函数索引=走翻转函数索引,不走全扫描。有效降低消耗值,io值,cpu值这三个指标,尤其是io值的降低。

分享到:
评论

相关推荐

    [] - 2022-07-25 MySQL模糊查询再也用不着 like+% 了!.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    Mysql 时间模糊查询

    在MySQL中,模糊查询主要通过`LIKE`关键字实现。例如,查询所有包含“abc”的记录可以使用`SELECT * FROM table WHERE column LIKE '%abc%'`这样的语句。 #### 三、时间模糊查询的方法 ##### 1. Convert转成String...

    Python使用sql语句对mysql数据库多条件模糊查询.pdf

    Python 使用 SQL 语句对 MySQL 数据库多条件模糊查询 Python 是一种广泛使用的编程语言,而 MySQL 是一种常用的关系型数据库管理系统。在实际应用中,我们经常需要使用 Python 连接 MySQL 数据库,并执行多条件...

    浅谈MySQL模糊查询中通配符的转义

    sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符。如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就...

    MySQL Like模糊查询速度太慢如何解决

    MySQL中的LIKE操作符常用于执行模糊查询,但其性能表现往往取决于查询模式和索引的使用情况。在处理大量数据时,低效的LIKE查询可能导致显著的性能下降。以下是一些关于如何优化MySQL LIKE模糊查询的策略: 1. **...

    mysql数据表模糊查询

    MySQL通过`LIKE`关键字支持模糊查询,可以使用不同的通配符来匹配数据。 #### 三、通配符介绍 - **%**:代表任意数量的字符,可以是零个、一个或多个字符。例如,`'%三%'`将匹配任何包含“三”的记录。 - **_**:...

    自写php+MySQL模糊查询

    在这个场景中,"自写php+MySQL模糊查询" 是一个新手尝试实现的功能,它允许用户输入关键词,然后在数据库中进行不精确匹配,返回与关键词相关的记录。这样的功能可以极大地提高用户在网站上的搜索体验。以下是对这个...

    解决MySql大数据Like查询慢的问题

    在MySQL数据库中,LIKE查询是常用的模糊匹配方法,但当处理大数据量时,尤其是涉及到通配符(如%)的LIKE查询,其性能问题不容忽视。这类查询往往会导致全表扫描,消耗大量的CPU资源和时间,进而拖慢整体系统的响应...

    根据电话号,姓名模糊查询通讯录

    模糊查询可以通过SQL的`LIKE`操作符实现,配合通配符`%`来匹配任意字符。 - 示例代码: ```java String queryName = "张三"; // 姓名模糊查询条件 String queryPhone = "138"; // 电话号码模糊查询条件 String ...

    SQL高级实例-模糊查询-分组随机查询-转换

    本资源包"SQL高级实例-模糊查询-分组随机查询-转换"聚焦于SQL的一些关键特性,旨在提升你在实际工作中的查询效率和数据处理能力。让我们逐一探讨这些主题。 首先,**模糊查询**是SQL中用于处理不精确或部分匹配搜索...

    PHP+MySQL实现模糊查询员工信息功能示例

    在本示例中,将会介绍如何使用PHP连接到MySQL数据库,然后通过“LIKE”语句来实现模糊查询员工信息的功能。同时,本示例也涉及到了使用PHP处理HTML表单提交的数据,并将查询结果显示在网页上。 首先,连接MySQL...

    MySql模糊查询like通配符使用详细介绍.pdf

    MySql 模糊查询 like 通配符使用详细介绍 在 MySQL 中,模糊查询是使用 LIKE 或 NOT LIKE 操作符来实现的。LIKE 操作符可以使用两个通配符:“_”和“%”。“_”表示任意单个字符,而“%”匹配任意数目字符(包括零...

    mysql语句集合包括模糊查询索引函数

    在这个“mysql语句集合包括模糊查询索引函数”中,我们将深入探讨SQL中的关键概念,特别是与模糊查询、索引和函数相关的知识。 首先,SQL语句主要分为四大类:SELECT(查询)、INSERT(插入)、UPDATE(更新)和...

    MySql模糊查询like通配符使用详细介绍.docx

    MySQL 模糊查询 Like 通配符使用详细介绍 MySQL 提供了两种模式匹配方式:SQL 模式和正则表达式模式。SQL 模式允许使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL 中,SQL 的模式...

    MySQL模糊查询语法

    MySQL 模糊查询语法 MySQL 提供了两种模糊查询语法:标准的 SQL 模式匹配和基于 Unix 实用程序的扩展正则表达式模式匹配。 SQL 模式匹配 在 MySQL 中,SQL 模式匹配允许使用“_”匹配任何单个字符,而“%”匹配...

    mysql模糊查询.pdf

    【MySQL 模糊查询】 在 MySQL 数据库中,模糊查询是一种强大的检索技术,它允许用户使用通配符来搜索不完全匹配的记录。这在处理大量数据时非常有用,特别是当你不确定确切的查询条件时。以下是一些关于 MySQL 模糊...

    mysql模糊查询like与REGEXP的使用详细介绍

    每位程序员们应该都知道,增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,...下面这篇文章就给大家详细介绍了mysql模糊查询like与REGEXP的使用,有需要的朋友们可以参考学习。

    java 模糊查询+网页抓取

    在执行模糊查询时,我们可以利用SQL的LIKE关键字配合通配符,如`%`代表任意数量的字符,`_`代表单个字符。例如,如果你有一个用户表,想要搜索所有名字包含"li"的用户,你可以编写如下SQL语句: ```sql SELECT * ...

    查分系统(JSP+MYSQL)

    同时,为了实现模糊查询,可能还需要用到SQL的LIKE操作符或者全文搜索功能,以满足不完全匹配的查询需求。 至于【标签】中的"JSP",全称为JavaServer Pages,是Java平台上的动态网页技术。JSP页面可以包含静态HTML...

    MySQL 数据库 like 语句通配符模糊查询小结

    MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结 前言 今天在使用MySQL语句执行增删改查操作时,控制台报出了以下错误:Parameter...

Global site tag (gtag.js) - Google Analytics