iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >数据库调优中如何解决like ’%str’ 时索引不被使用
  • 751
分享到

数据库调优中如何解决like ’%str’ 时索引不被使用

2024-04-02 19:04:59 751人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关数据库调优中如何解决like ’%str’ 时索引不被使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。索引1.  &

这篇文章将为大家详细讲解有关数据库调优中如何解决like ’%str’ 时索引不被使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

索引

1.      解决like’%str’不使用模糊查询的4种方法

上一讲最后说了,只要模糊查询的模糊值在字符串前面,则不会使用索引,‘%aaa’和‘_aaa’都不会!

如下

应该说这是Mysql程序员们开的一个玩笑。要是我的表数据量很大,而且又需要使用like’%%’这样的模糊查询来检索时,该怎么办??

接下来,笔者将会给大家分享解决这个问题的四种方法!

1)    Select主键

只要Select的字段刚好是主键,那么就会使用到索引(只对innodb数据库有效)

比如下面的

select idfrom emp where ename like '%haha%'\G

就使用了索引

select * from empwhere ename like '%haha%'\G

则不使用索引

除了主键,其他字段必须设置为覆盖索引才能使索引生效,不能单独设置索引

比如下面这种是不会使用索引的

可以采用分步查询的方法,先select主键再利用主键去找其他字段。不过好像比较麻烦!别怕!接下来会讲一种最优方法——覆盖索引法!

2)    覆盖索引法

覆盖索引是一种特殊的多列索引,当多列索引指向一个查询语句中所有的字段时,该多列索引就被称为覆盖索引。

使用覆盖索引可以解决问题!

创建覆盖索引

当然,如果你想要select很多字段甚至是select*,那你可以创建一个多列索引指向所有字段(innodb可以不指向主键)

注意:

笔者发现,当覆盖索引指向的字段是varchar(380)及380以上的字段时,覆盖索引会失效!

3)    全文索引法

此方法有较大局限。

全文索引,只对MyISAM引擎有用。主要是针对对文件,文本的检索, 比如文章或者段落,.

它会把某个数据表的某个数据列出现过的所有单词生成一份清单

少于3个字符的单词不会被包含在全文索引里,可以通过修改my.cnf修改选项

ft_min_Word_len=3

但是!

全文索引不完全等同于模糊查询

比如title字段有这么个数据’abcd20088ccaa’,使用模糊查询select * from articles wheretitle like’%2008%’可以查找到,而使用全文检索select * from articles where match(title) against(‘2008’);是检索不到的,因为2008不是一个单词!

4)    使用全文检索引擎工具

采用lucene、Sphinx、solr等专门的全文检索开源工具可以检索某段字符串。

关于数据库调优中如何解决like ’%str’ 时索引不被使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 数据库调优中如何解决like ’%str’ 时索引不被使用

本文链接: https://www.lsjlt.com/news/61532.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库调优中如何解决like ’%str’ 时索引不被使用
    这篇文章将为大家详细讲解有关数据库调优中如何解决like ’%str’ 时索引不被使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。索引1.  &...
    99+
    2024-04-02
  • MongoDB数据库中如何使用索引
    本篇文章为大家展示了MongoDB数据库中如何使用索引,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  MongoDB的各种索引有哪些用法  1.单列索引  在字段...
    99+
    2024-04-02
  • 数据库索引如何使用
    数据库索引是一种优化数据库查询性能的技术。通过使用索引,可以快速定位到数据库中存储的数据,减少查询的时间和资源消耗。使用数据库索引的...
    99+
    2023-08-17
    数据库
  • 如何在PostgreSQL数据库中创建和使用索引
    在PostgreSQL数据库中,可以通过以下步骤来创建和使用索引: 创建索引: 使用CREATE INDEX语句可以在表上创建索引...
    99+
    2024-04-02
  • oracle数据库中为什么在查询里索引未被使用
    这篇文章主要介绍了oracle数据库中为什么在查询里索引未被使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。快速检查表上是否存在索引检查您...
    99+
    2024-04-02
  • 如何在 Go 中使用实时索引函数?
    在 Go 中使用实时索引函数是一种非常有效的技术,可以大大提高程序的性能和可维护性。本文将介绍如何在 Go 中使用实时索引函数,包括什么是实时索引函数、如何定义和使用它们以及如何在代码中演示它们。 什么是实时索引函数? 实时索引函数是一种将...
    99+
    2023-07-31
    索引 实时 函数
  • 如何优化 Java 中的索引函数使用?
    Java中的索引函数是一种非常有用的工具,可以帮助开发人员更快速地访问和操作数据。但是,如果不正确使用索引函数,它可能会导致性能问题。在本文中,我们将探讨如何优化Java中的索引函数使用。 索引函数是什么? 在Java中,索引函数是一种...
    99+
    2023-09-02
    索引 函数 api
  • 如何在Java中使用索引来优化大数据查询?
    Java是一种非常流行的编程语言,可以用来处理大数据。在处理大量数据时,优化查询速度非常重要。使用索引是提高查询速度的一种方法。本文将介绍如何在Java中使用索引来优化大数据查询。 索引的概念 索引是一种数据结构,用于加快数据的查询速度...
    99+
    2023-07-20
    leetcode 索引 大数据
  • 使用MySQL索引如何快速检索数据库的案例
    这篇文章将为大家详细讲解有关使用MySQL索引如何快速检索数据库的案例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、索引的概念1、索引是一个排序的列表,在这个列表中存...
    99+
    2024-04-02
  • 如何在Mysql数据库中使用视图、事务和索引
    今天就跟大家聊聊有关如何在Mysql数据库中使用视图、事务和索引,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。视图是对若干张基本表的引用,一张虚表,...
    99+
    2024-04-02
  • sql server 数据库中sa用户被锁定如何解决
    这篇文章给大家介绍sql server 数据库中sa用户被锁定如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、打开数据库——用Windows身份登录数据库登录名——双击sa(打开属性)常规——设置密码——确定...
    99+
    2023-06-15
  • 数据库中如何一键查看索引历史使用情况
    这篇文章给大家分享的是有关数据库中如何一键查看索引历史使用情况的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。假设这么一个场景,有一张表建了很多索引,我们可以怎么通过观察索引历史使...
    99+
    2024-04-02
  • 使用MyBatis时数据库字段和实体字段不同如何解决
    这期内容当中小编将会给大家带来有关使用MyBatis时数据库字段和实体字段不同如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当数据库字段和实体bean中属性不一致时之前数据库Person名字字段是...
    99+
    2023-05-31
    mybatis 实体字段 数据库字段
  • 如何使用SQL语句在MySQL中进行数据索引和优化?
    如何使用SQL语句在MySQL中进行数据索引和优化?在使用MySQL数据库时,数据索引和优化是非常重要的。适当地创建索引和优化查询语句可以大大提高数据库的性能。本文将详细介绍如何使用SQL语句在MySQL中进行数据索引和优化,并提供具体的代...
    99+
    2023-12-17
    数据索引使用 SQL索引优化 MySQL数据优化
  • 如何在 Python 中使用 npm 工具包来优化大数据索引?
    在大数据处理中,数据索引是非常重要的一项工作。而在 Python 中,我们可以使用 npm 工具包来优化数据索引的效率。本文将介绍如何在 Python 中使用 npm 工具包来优化大数据索引。 安装 npm 工具包 首先,我们需要安装 ...
    99+
    2023-08-23
    大数据 索引 npm
  • 你知道如何在ASP中使用关键字索引来优化数据库查询吗?
    在ASP中使用关键字索引来优化数据库查询是一种常见的方法,它可以提高查询的速度和效率。本文将介绍如何使用关键字索引来优化ASP中的数据库查询,以及一些相关的实际应用。 一、关键字索引是什么? 关键字索引是一种用于加速数据库查询的技术。它通过...
    99+
    2023-09-26
    并发 关键字 索引
  • 如何使用不同的索引更新解决MySQL死锁
    这篇文章给大家分享的是有关如何使用不同的索引更新解决MySQL死锁的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。示例如下CREATE TABLE `t3`&n...
    99+
    2024-04-02
  • 如何使用 PHP 函数从数据库中检索数据?
    在 php 中,可以使用 mysqli_query() 函数检索数据库数据,并使用 mysqli_fetch_row()、mysqli_fetch_assoc() 和 mysqli_fe...
    99+
    2024-04-30
    数据库 php函数 mysql
  • 如何在 Golang 中使用数据库回调函数?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-14
  • PHP 开发中,如何使用索引来提高数据库查询速度?
    PHP 是一种非常流行的编程语言,用于开发 Web 应用程序和网站。在 PHP 开发中,数据库查询是必不可少的一部分。然而,随着数据库中数据量的增加,查询速度可能会变慢。为了提高查询速度,我们可以使用索引。本文将介绍如何在 PHP 开发中使...
    99+
    2023-08-19
    面试 索引 开发技术
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作