广告
返回顶部
首页 > 资讯 > 数据库 >SQL优化之如何使用索引
  • 123
分享到

SQL优化之如何使用索引

2024-04-02 19:04:59 123人浏览 八月长安
摘要

这篇文章主要介绍sql优化之如何使用索引,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面 sql  30秒执行出结果,查看 sql 

这篇文章主要介绍sql优化之如何使用索引,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

下面 sql  30秒执行出结果,查看 sql 谓词中有 like ,我们知道谓词中有这样的语句是不走索引的(为了保护客户的隐私,表名和部分列已经重命名)。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

SELECT 

CHECKNUM AS PINGZBSM,

CHECKDATE,

XXXMODE,

XXXRESULT,

(SELECT RESULT 

FROM (select ID,to_char(WMSYS.WM_CONCAT(xxxnum||xxxtype||xxxmode||xxxresult)) RESULT 

       from OOOO_XXXCHECKLOG 

      WHERE CHECKDATE BETWEEN DATE'2018-05-04' AND DATE'2018-05-04' and xxxtype like '%PAR'

      GROUP BY ID

    ) b where b.id=a.id

) RESULT,

CLERKNUM AS CHECKNUM

FROM OOO_XXXECHECKLOG A;

SQL优化之如何使用索引

逻辑读600多万。查看索引情况如下

SQL优化之如何使用索引

表过滤返回数据量如下:

1

2

3

4

5

6

SQL> select count(*) from OOOO_XXXCHECKLOG;

2799616

select count(*) from OOOO_XXXCHECKLOG WHERE CHECKDATE BETWEEN DATE'2018-05-04' AND DATE'2018-05-04' and xxxtype like '%PAR';

 12856

select count(*) from OOOO_XXXCHECKLOG WHERE CHECKDATE BETWEEN DATE'2018-05-04' AND DATE'2018-05-04';

197984

通过查询上面返回数据可知,因为xxxtype不走索引,所以通过索引要回表197984次,如果走了索引只回表12856次。

下面我们建立REVERSE索引IDX_ID_TYPE_RE

1

2

3

4

5

6

7

8

9

10

11

12

13

14

SELECT 

CHECKNUM AS PINGZBSM,

CHECKDATE,

XXXMODE,

XXXRESULT,

(SELECT RESULT 

FROM (select ID,to_char(WMSYS.WM_CONCAT(xxxnum||xxxtype||xxxmode||xxxresult)) RESULT 

       from OOOO_XXXCHECKLOG 

      WHERE CHECKDATE BETWEEN DATE'2018-05-04' AND DATE'2018-05-04' and REVERSE(xxxtype) like 'RAP%'

      GROUP BY ID

    ) b where b.id=a.id

) RESULT,

CLERKNUM AS CHECKNUM

FROM OOO_XXXECHECKLOG A;

查看执行计划如下,逻辑读将为300万,但是时间还是维持在 18 秒,根本原因在于这个索引因为标量子查询的问题被访问700 万次导致。

SQL优化之如何使用索引

下面我们改写sql如下

1

2

3

4

5

6

7

8

9

10

11

12

13

SELECT 

CHECKNUM AS PINGZBSM,

CHECKDATE,

XXXMODE,

XXXRESULT,

B.RESULT,

CLERKNUM AS CHECKNUM

FROM OOO_XXXECHECKLOG A

left join (select ID,to_char(WMSYS.WM_CONCAT(xxxnum||xxxtype||xxxmode||xxxresult)) RESULT 

       from OOOO_XXXCHECKLOG 

      WHERE CHECKDATE BETWEEN DATE'2018-05-04' AND DATE'2018-05-04' and REVERSE(xxxtype) like 'RAP%'

      GROUP BY ID

    ) b on b.id=a.id;

SQL优化之如何使用索引

执行计划中出现index_skip_scan。 

下面我们创建如下索引:

1

create index idx_date_seal_re on OOOO_XXXCHECKLOG(CHECKDATE,REVERSE(xxxtype));

SQL优化之如何使用索引

可以看到,逻辑读降到64424, 50 个物理读是因为刚刚创建索引的原因, sql 也秒出。

以上是“SQL优化之如何使用索引”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: SQL优化之如何使用索引

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

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

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

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

下载Word文档
猜你喜欢
  • SQL优化之如何使用索引
    这篇文章主要介绍SQL优化之如何使用索引,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!下面 sql  30秒执行出结果,查看 sql ...
    99+
    2022-10-18
  • SQL Server高级进阶之索引优化
    1.1、查找缺失索引 SELECT A.USER_SEEKS 查找次数,A.USER_SCANS 扫描次数, ROUND(A.AVG_TOTAL_USER_COST,2) 减少的用户查询的平均成本,A.AVG_USER_...
    99+
    2016-07-26
    SQL Server高级进阶之索引优化
  • SQL优化之统计信息和索引
    大部分情况下的sql优化的场景,都是发生在我们想让我们的sql语句运行的更快一点,这个时候我们往往会采取一些“措施”调整sql的执行路径以便它们能更快的运行结束。 刚入dba行业,常常听到导师和...
    99+
    2022-10-18
  • SQL Server高级进阶之索引优化查询
    1.1、查找缺失索引 SELECT A.USER_SEEKS 查找次数,A.USER_SCANS 扫描次数, ROUND(A.AVG_TOTAL_USER_COST,2) 减少的用户查询的平均成本,A.AVG_USER_...
    99+
    2014-08-11
    SQL Server高级进阶之索引优化查询
  • SQL Server索引优化常用查询
    1.1、查找缺失索引 SELECT A.USER_SEEKS 查找次数,A.USER_SCANS 扫描次数, ROUND(A.AVG_TOTAL_USER_COST,2) 减少的用户查询的平均成本,A.AVG_USER_...
    99+
    2014-10-16
    SQL Server索引优化常用查询
  • MySQL性能优化之如何高效正确的使用索引
    实践是检验真理的唯一途径,本篇只是站在索引使用的全局来定位的,你只需要通读全篇并结合具体的例子,或回忆以往使用过的地方,对整体有个全面认识,并理解索引是如何工作的,就可以了。在后续使用索引,或者优化索引时,可以从这些...
    99+
    2022-05-14
    MySQL 索引 MySQL 优化索引 MySQL 高效使用索引
  • MySQL如何优化索引
    1.  MySQL如何使用索引 索引用于快速查找具有特定列值的行。如果没有索引,MySQL必须从第一行开始,然后遍历整个表以找到相关的行。表越大,花费越多。如果表中有相关列的索引,MySQL可以快速确定要在...
    99+
    2022-05-27
    MySQL 索引 MySQL 优化索引
  • 如何优化Explain索引
    这篇文章主要介绍“如何优化Explain索引”,在日常操作中,相信很多人在如何优化Explain索引问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何优化Explain索引”...
    99+
    2022-10-18
  • Mysql索引如何优化
    小编给大家分享一下Mysql索引如何优化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!编程沉思录     &...
    99+
    2022-10-18
  • 如何在PHP开发中优化SQL查询语句和索引使用?
    如何在PHP开发中优化SQL查询语句和索引使用?在PHP开发中,数据库查询是非常常见的操作。然而,当数据量增大时,查询性能可能受到影响,导致应用程序变慢。为了提高查询性能,我们需要优化SQL查询语句和索引的使用。本文将介绍一些优化技巧和最佳...
    99+
    2023-11-02
    PHP优化 SQL查询 索引使用
  • 如何使用SQL语句在MySQL中进行数据索引和优化?
    如何使用SQL语句在MySQL中进行数据索引和优化?在使用MySQL数据库时,数据索引和优化是非常重要的。适当地创建索引和优化查询语句可以大大提高数据库的性能。本文将详细介绍如何使用SQL语句在MySQL中进行数据索引和优化,并提供具体的代...
    99+
    2023-12-17
    数据索引使用 SQL索引优化 MySQL数据优化
  • 如何使用SQL语句在MongoDB中进行索引创建和优化?
    如何使用SQL语句在MongoDB中进行索引创建和优化?摘要:在MongoDB中,使用SQL语句进行索引创建和优化是一种高效的方式来提高查询性能。本文将介绍如何使用SQL语句在MongoDB中进行索引的创建和优化,并提供具体的代码示例。引言...
    99+
    2023-12-17
    索引创建:create index 优化查询:query optimization 索引类型:index types
  • Java 索引教程:如何使用 NPM 来优化搜索?
    在开发 Java 应用程序时,搜索是一个非常常见的需求。然而,如果数据量很大,普通的搜索算法可能会变得非常缓慢。为了解决这个问题,我们可以使用索引来优化搜索。在本教程中,我们将介绍如何使用 NPM 来构建索引,并使用索引来加快搜索速度。 ...
    99+
    2023-07-27
    索引 教程 npm
  • MySQL中如何优化索引
    MySQL中如何优化索引,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。文章的脑图如下:索引优化规则1、like语句的前导模糊查询不能使用索...
    99+
    2022-10-18
  • MySQL使用索引优化性能
    目录1.索引问题2.索引的存储分类3.如何使用索引3.1使用索引3.2存在索引但不使用索引4.查看索引使用情况5.两个简单实用的优化方法5.1定期分析表和检查表5.2定期优化表1.索...
    99+
    2022-11-13
  • sql索引如何建立与使用
    在SQL中,索引是一种数据结构,用于提高数据库的查询性能。索引可以加快数据的查找速度,特别是在大型数据库中。下面是索引的建立和使用方...
    99+
    2023-09-05
    sql
  • SQL使用复合索引实现数据库查询的优化
    目录一 问题二 分析三 解决方案一 问题 程序再在一次查询时出现查询时间过长,每次查询要1-2分钟业务反馈用户操作体验很差,sql如下: select * FROM edi...
    99+
    2022-11-13
  • Unix和Java:如何使用索引优化框架?
    在当今的信息时代,数据处理已经成为了各个领域的必备技能。而在数据处理中,索引优化框架是一个非常重要的概念。本文将介绍Unix和Java两种编程语言中如何使用索引优化框架。 一、什么是索引优化框架 索引优化框架是一种数据结构,可以帮助我们更...
    99+
    2023-06-16
    unix 框架 索引
  • 如何使用索引优化你的网站SEO?
    SEO(搜索引擎优化)是网站推广中的一项重要工作,它可以帮助网站在搜索引擎中获得更好的排名,从而获得更多的流量和曝光度。在SEO中,索引是一个非常重要的概念,本文将介绍如何使用索引优化你的网站SEO。 一、什么是索引 在搜索引擎中,索引是指...
    99+
    2023-06-09
    异步编程 自然语言处理 索引
  • 如何使用 Python 容器进行索引优化?
    Python 容器是指在 Python 中用来存储一组元素的数据结构,比如列表、元组、字典和集合等。在 Python 中,容器的使用非常普遍,因为它们能够方便地存储和操作数据。但是,在处理大量数据时,容器的性能可能会成为瓶颈,因此需要进行索...
    99+
    2023-07-05
    容器 索引 spring
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作