`

性能及SQL分析

阅读更多

        测试发现我们的一个接口存在性能问题,经分析是一个SQLMAP中一个SQL有两个层面的业务逻辑,用OR连接,如下所示。

select * from table_name where a='111' and b='222' and c='333' or d = '444';

        此表中约有近100W的数据量,查看建表语句发现a、b、c是主键,而d字段未建索引。于是我立马想到的第步优化即在d上建索引。

一.索唯一索引

        且从业务逻辑来看,d字段不会重复,因此给d字段建了唯一索引,给测试压测发现性能还是不行。

 

二.采用union all来替代or

        分析业务,由于是进行重复情判断,因为从业务角度来讲,完全可以用union all来替代or,于是修改SQL如下:

select * from table_name where a='111' and b='222' and c='333' 
union all
select * from table_name where d = '444';

        再做性能分析,基本达到业务要求。

 

三.将以上SQL拆分成两条SQL语句

        将以上SQL拆分成如下两条SQL语句:

select * from table_name where a='111' and b='222' and c='333';
select * from d = '444';

        在应用层分开调用,再做性能分析,也基本达到业务要求。

 

四.SQL分析

1.explain select * from table_name where a='111' and b='222' and c='333' or d = '444';


2.explain select * from table_name where a='111' and b='222' and c='333' union all select * from table_name where d = '444';


3.explain select * from table_name where a='111' and b='222' and c='333';


4.explain select * from table_name where d = '444';

        从SQL分析来看,主键和唯一索引在表中找到所需行的方式都为const,它表示当MySQL对查询某部分进行优化,并转换为一个常量时,使用这些类型访问。

        system是const类型的特例,当查询的表只有一行的情况下,使用system。

 

五.Impossible WHERE noticed after reading const tables分析

  换一个不存在的主键或唯一索引值,如如下SQL所示:

explain select * from table_name where d = 'aaa';
explain select * from table_name where a='aaa' and b='bbb' and c='ccc';


        据说,这是因为mysql是首先对索引记录进行查询,然后在分析效果。

 

附:知识回顾

        explain的type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

  • 大小: 8.1 KB
  • 大小: 12.3 KB
  • 大小: 8.3 KB
  • 大小: 7.8 KB
  • 大小: 8.3 KB
  • 大小: 7.2 KB
分享到:
评论

相关推荐

    SQLSERVER性能分析步骤

    dba sqlserver 性能分析 dba sqlserver 性能分析 dba sqlserver 性能分析 dba sqlserver 性能分析 dba sqlserver 性能分析 dba sqlserver 性能分析 dba sqlserver 性能分析

    sql性能分析工具效率分析

    在IT领域,SQL性能分析是数据库管理中的关键环节,它涉及到如何有效地运行SQL查询,以提高系统的整体性能。本文将详细探讨"SQL性能分析工具效率分析"这一主题,旨在帮助你理解和利用这些工具来优化你的项目和SQL功能...

    informix sql性能分析

    ### Informix SQL性能分析 在IT行业中,数据库的性能优化是一项至关重要的工作,尤其是在大型企业级应用中。本文将详细介绍如何在Informix数据库中进行SQL性能分析,这对于提高数据库的整体性能、减少延迟以及提升...

    帆软报表查询性能sql分析插件

    帆软报表查询性能SQL分析插件是一款专门针对帆软报表系统的增强工具,旨在提升报表查询效率和性能优化。此插件能够深入解析SQL查询过程,帮助用户识别并解决潜在的性能瓶颈,确保报表的快速准确生成。以下是关于这款...

    SQLServer性能分析

    ### SQL Server性能分析详解 #### 一、引言 在现代企业级应用环境中,SQL Server作为主流的关系型数据库管理系统之一,其性能对于整个系统的稳定性和响应速度至关重要。当遇到SQL Server性能问题时,准确地诊断并...

    SQL服务器,性能分析语句

    常用的数据库性能分析语句,服务器卡的时候,常用的可以查看后台连接、使用能耗比较高的语句代码

    DB2 SQL语句性能分析方法

    ### DB2 SQL语句性能分析方法 #### 一、引言 DB2 Universal Database (UDB) 是IBM推出的一款高性能关系型数据库管理系统。为了确保DB2数据库能够在各种应用场景下高效稳定运行,DB2 UDB提供了丰富的工具帮助用户...

    影响SQL server性能的关键,sql语句分析

    ### 影响SQL Server性能的关键因素与SQL语句分析 在数据库管理与应用开发领域,SQL Server 是一种广泛使用的数据库管理系统。SQL Server 的性能直接影响着应用程序的响应速度、数据处理能力以及整体用户体验。为了...

    sqlserver 性能分析工具大全

    sqlserver 性能分析工具大全,包括uml,MPSreport,SQL Server 2005 Best Practices Analyzer ,SQL Server 2005 Performance Dashboard Reports,SQL Server Web Data Administrator,sqlnexus 2.5.0.7,Relog Tool,...

    MSSQL性能监控SQL语句

    Microsoft SQL Server(MSSQL)作为一款广泛使用的数据库管理系统,提供了丰富的工具和方法来监控其性能。本文将深入探讨MSSQL性能监控中的几个关键SQL语句,帮助数据库管理员(DBA)和开发者更好地理解和管理MSSQL...

    高性能SQL调优

    "高性能SQL调优"这一主题涵盖了许多相关知识点,包括但不限于以下内容: 1. **SQL优化基础**:SQL查询是数据库操作的核心,理解SQL的工作原理,如解析、执行计划生成、索引使用等,是调优的基础。了解SQL的执行过程...

    PLSQL程序性能分析及优化

    PLSQL程序性能分析及优化 经验总结 实施过程中,经常会使用 PL/SQL Developer 工具进行数据转换和处理业务数据。通过性能 优化来提高程序执行效率是必须掌握的一份技能。性能问题中绝大部分都是由于程序编写的 不合理...

    高清完整版 Oracle 高性能SQL引擎剖析SQL优化与调优机制详解

    Oracle数据库是全球领先的企业级...由于是关于Oracle高性能SQL引擎的深入剖析,这本资料是数据库开发者和管理员难得的参考资料,尤其对于处理复杂业务逻辑和海量数据的场景下,掌握这些优化和调优技巧显得尤为重要。

    sql2005性能sql 性能优化

    【SQL2005性能优化】SQL Server 2005是Microsoft推出的一款关系型数据库管理系统,具有强大的功能和良好的性能。然而,随着数据量的增长和业务需求的复杂化,性能问题常常成为关注的重点。本文将探讨如何针对SQL ...

    SQL性能分析(英文原版)

    《SQL性能分析》这本书是数据库性能优化领域的重要参考资料,它深入浅出地探讨了如何对SQL查询进行有效的性能分析和调优。对于那些希望提升数据库性能、解决查询速度问题的IT从业者来说,这本书是一个不可多得的学习...

    测试sql性能的实例

    总结,SQL性能测试是数据库管理的重要环节,通过深入分析SQL语句的执行情况,我们可以找出性能问题并进行优化。实践中的实例分析和持续监控是提升数据库性能的关键步骤。在“SQL语句性能测试.txt”中,我们可以找到...

    Sql查询分析器

    SQLServer是微软公司开发的一款企业级数据库管理系统,广泛应用于大型企业及组织,提供高性能、高可用性和安全性。 使用"Sql查询分析器",你可以执行以下几种类型的SQL语句: 1. **SELECT语句**:这是最常用的SQL...

    SQL Server 2005 性能分析和调优

    ### SQL Server 2005 性能分析与调优 #### 一、性能优化的思想与流程 在《SQL Server 2005 性能分析和调优》这一主题中,作者首先强调了性能优化的基本思想:通过一系列的方法和技术手段来提升SQL Server 2005的...

    DB2 SQL性能调优秘笈

    2. **SQL Trace记录**:通过对关键SQL语句进行跟踪记录,可以收集到详尽的性能数据,进而深入分析执行效率低下的原因。 3. **SQL Monitor监控**:利用DB2的SQL Monitor功能,可以实时监控SQL语句的执行情况,及时...

Global site tag (gtag.js) - Google Analytics