`

sql like与索引(后模糊匹配才能让索引有效)

    博客分类:
  • sql
 
阅读更多
索引与优化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值的降低。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    sql模糊查询并按匹配度排序

    ### SQL模糊查询并按匹配度排序 在数据库查询操作中,模糊查询是非常常见的一种需求,尤其是在需要处理大量数据且查询条件不确定的情况下。本篇文章将基于提供的SQL查询语句,详细介绍如何进行SQL模糊查询以及如何...

    SQL使用Like模糊查询

    在SQL(Structured Query Language)中,`LIKE` 模糊查询是一种非常实用的功能,它允许用户根据特定的模式匹配数据库中的数据。这个功能在数据检索、分析和处理时尤其有用,尤其是在我们不确定确切的搜索词或者需要...

    Sql2008_全文索引详解

    与LIKE语句不同,全文索引不仅在速度上有显著优势,还能支持模糊匹配和同义词搜索,这对于处理新闻文章、报告或其他含有大量文本信息的数据库特别有用。 在全文索引中,有几个关键术语需要理解: 1. **全文索引**...

    ORACLE索引详解及SQL优化

    3. **操作符**:某些操作符如`NOT`、`BETWEEN`、`LIKE`的模糊匹配可能导致索引失效,除非使用了前缀索引或全文索引。 4. **索引选择性**:索引的选择性越高,区分度越大,使用索引的效果越好。如果索引列的值过于...

    SQLSERVER全文索引的使用

    在SQL Server中,全文索引是一种特殊类型的索引,主要用于提高文本数据的检索效率,尤其是在执行复杂模糊查询时。全文索引支持复杂的自然语言查询,能够帮助用户快速定位到含有特定词语或短语的数据记录。 #### 二...

    SQL Server 全文索引查询

    与传统的基于B树结构的索引不同,全文索引专注于处理“包含”式查询,即查询字符串中是否包含特定的关键词,而不仅仅是以特定字符开头的查询。这种技术在搜索引擎和网站搜索功能中特别有用。 首先,要启用SQL ...

    索引的SQL语句优化

    11. **like子句尽量前端匹配**:当使用`LIKE`进行模糊查询时,确保模式字符串的开头固定,以便更有效地使用索引。 12. **用Case语句合并多重扫描**:在某些情况下,使用`CASE`语句可以减少对多个表的多次扫描,提高...

    sql优化、索引的建立和运用以及多表连接建索引的拙劣见解

    ### SQL优化、索引的建立和运用以及多表连接建索引的相关知识点 #### SQL优化概述 在数据库系统中,SQL语句的执行效率对于系统的响应时间和资源利用有着至关重要的影响。合理的SQL优化不仅可以显著提升查询速度,还...

    SQL Server 2005 全文索引

    CONTAINS谓词支持精确匹配和模糊匹配,以及使用通配符、范围操作符和语言规则进行复杂查询。FREETEXT则更加灵活,它能理解自然语言并识别同义词。 此外,还可以使用CONTAINSTABLE或FREETEXTTABLE函数返回一个临时表...

    基于SQL Server的多条件模糊匹配查询.pdf

    本文详细介绍了如何在SQL Server中实现多条件模糊匹配查询,这种方法在数据库查询和信息检索领域中非常重要,尤其是在复杂搜索条件下的应用。文章分别对单条件模糊匹配查询和多条件搜索的方法进行了阐述,并提出两种...

    sql中生成查询的模糊匹配字符串

    在SQL中,模糊匹配字符串通常使用LIKE运算符来实现。例如,SELECT * FROM 表名 WHERE 字段名 LIKE '%关键词%'。 在本文中,我们将详细介绍如何在SQL中生成查询的模糊匹配字符串。首先,我们需要创建一个辅助表来...

    SQL优化-索引

    8. **ORDER BY与GROUP BY**:对于包含NULL值的索引列,优化器可能无法有效优化带有`ORDER BY`或`GROUP BY`的查询。 综上所述,合理利用索引可以显著提升数据库查询效率,但在设计索引时需要综合考虑多种因素,以...

    SQL数据库模糊查询内容语句

    在SQL(Structured Query Language)中,模糊查询是一种非常重要的功能,它允许我们使用通配符来匹配不完全或不确定的数据。这种查询方式在处理大量数据时尤其有用,比如在搜索关键词、查找类似记录或者进行数据清洗...

    基于索引的SQL语句优化

    15. **基于函数的索引要求等式匹配**:基于函数的索引只在函数调用与索引定义完全匹配时才有效,所以要确保查询中的函数调用与索引一致。 16. **使用分区索引**:对于大量数据,使用分区策略可以将大表划分为较小的...

    (转)sql2005全文索引.doc

    与LIKE语句不同,全文索引是根据特定语言的规则对词和短语进行搜索,因此更加精准高效。 #### 三、全文索引常用术语 1. **全文索引**: 存储有关重要词汇及其在文档中位置信息的一种特殊索引,用于快速全文查询。 2...

    PostgreSQL Like模糊查询优化方案

    创建基于trgm的索引后,我们可以使用ILIKE操作符进行模糊匹配,这将利用索引来加速查询。例如,`SELECT * FROM table WHERE column % 'xxx'`。 除此之外,考虑数据结构和业务逻辑也很重要。如果可能,尽量避免在...

    pgsql查询优化之模糊查询实例详解

    一直以来,对于搜索时模糊匹配的优化一直是个让人头疼的问题,好在强大pgsql提供了优化方案,下面就来简单谈一谈如何通过索引来优化模糊匹配 案例 我们有一张千万级数据的检查报告表,需要通过检查报告来模糊搜索...

    sql学习 索引去哪儿_like与 %间一波三则的故事.sql

    sql学习 索引去哪儿_like与 %间一波三则的故事.sql

    Oracle Index 索引介绍

    - `LIKE`操作符前缀匹配可利用索引,但模糊匹配则无法利用。 3. **索引提示(Hint)** 在SQL语句中使用`/*+ INDEX */`提示强制优化器使用特定的索引。 4. **索引的负面影响** - 索引占用额外的存储空间。 - ...

Global site tag (gtag.js) - Google Analytics