SQL 性能下降的原因|学习笔记

简介: 快速学习 SQL 性能下降的原因

开发者学堂课程【MySQL 高级应用 - 索引和锁SQL 性能下降的原因】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/598/detail/8588


SQL 性能下降的原因


内容介绍

一、SQL 性能下降的原因

二、总结


一、SQL 性能下降的原因

主要是性能下降 SQL 慢、执行时间长、等待时间长

不是一条 SQL 抓出来就要优化,在真实的生产环境下这种故障第一个要去复线,有可能去排查的时候没,所以没法复线。

可能需要它跑半天或者一天来缩小筛查的范围,不是故障一发生就能获得这条 SQL ,而且到底是不是真的情况到底是不是 SQL 写的慢,也可以是磁盘的空间满,这些情况也会导致 SQL 慢。

1.查询语句写的烂

Select 语句写的烂,各种链接各种子查询导致用不上索引或者没见索引。所以需要看索引后期优化的内容。

2.索引失效  

索引失效的前提是见没用上,而没有索引是根本没见过。

索引分为单值索引和复合索引。

假如说有 idnameemailweixinNumber

假如说select * form user where name=’;

假设这个表是千万的记录,假设重名的也很少,要想按照这个name查的快就要在上边做一个索引。

单值索引:

select * from user where name='';

create index idx_user_name on user(name)

//id_建索引在 user 表的 name 字段上,没建索引的时候是杂乱无章的,现在是进行了排序所以查询的时候速度可以更快。

单值索引是只给这个表的某一个字段建一个索引

复合索引:

频繁使用的是字段要建立索引,并且同时可能使用两到三个字段

select * from user where name='' and email='’;

create index idx_user_name on user(name)

Create index idx_user_nameemail on user(name,email)

3.查询关联太多 join(设计缺陷或不得已的需求)

join 太多不好就像 Java 的类一样继承层次太多也不好,但是有些时候是因为设计缺陷或不得已的需求。关联查询太多的 join 也会导致慢查询时间长。

4.服务器调优及各种参数设置(缓冲、线程数等)

如果这些设置不合理比例不恰当,也会导致查询时间长等待时间长。

 

二、总结

包含但不限于这四个还会有其它的主要是前三个是跟 Java 工程师相关的,着重的如何写好 SQL ,如何建好索引且导致索引不失效就是重点解决的任务。

相关文章
|
2月前
|
SQL 数据库 开发者
MSSQL性能调优实战技巧:索引优化、SQL语句微调与并发控制策略
在Microsoft SQL Server(MSSQL)的管理与优化中,性能调优是一项复杂但至关重要的任务
|
18天前
|
SQL 数据处理 数据库
专坑同事的SQL写法:性能杀手揭秘
【8月更文挑战第29天】在日常的数据库开发与维护工作中,编写高效、清晰的SQL语句是每位数据工程师的必修课。然而,不当的SQL编写习惯不仅能降低查询效率,还可能给同事的工作带来不必要的困扰。今天,我们就来揭秘八种常见的“专坑同事”SQL写法,助你避免成为那个无意间拖慢整个团队步伐的人。
28 1
|
23天前
|
SQL 关系型数据库 MySQL
【MySQL 慢查询秘籍】慢SQL无处遁形!实战指南:一步步教你揪出数据库性能杀手!
【8月更文挑战第24天】本文以教程形式深入探讨了MySQL慢SQL查询的分析与优化方法。首先介绍了如何配置MySQL以记录执行时间过长的SQL语句。接着,利用内置工具`mysqlslowlog`及第三方工具`pt-query-digest`对慢查询日志进行了详细分析。通过一个具体示例展示了可能导致性能瓶颈的查询,并提出了相应的优化策略,包括添加索引、缩小查询范围、使用`EXPLAIN`分析执行计划等。掌握这些技巧对于提升MySQL数据库性能具有重要意义。
50 1
|
16天前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
30 0
|
16天前
|
Java XML Maven
跨越时代的飞跃:Struts 2 升级秘籍——从旧版本无缝迁移到最新版,焕发应用新生!
【8月更文挑战第31天】随着软件技术的发展,Struts 2 框架也在不断更新。本文通过具体案例指导开发者如何从旧版平滑升级到 Struts 2.6.x。首先更新 `pom.xml` 中的依赖版本,并执行 `mvn clean install`。接着检查 `struts.xml` 配置,确保符合新版本要求,调整包扫描器等设置。审查 Action 类及其注解,检查配置文件中的弃用项及插件。更新自定义拦截器实现,并验证日志配置。最后,通过一系列测试确保升级后的系统正常运行。通过这些步骤,可以顺利完成 Struts 2 的版本升级,提升应用的安全性和性能。
45 0
|
23天前
|
SQL NoSQL 关系型数据库
性能与扩展性的考量:SQL vs NoSQL
【8月更文第24天】在选择数据库系统时,开发者和架构师面临着一个关键决策:是选择传统的SQL(结构化查询语言)数据库还是现代的NoSQL(非关系型)数据库。这两种类型各有优劣,尤其是在性能和扩展性方面。本文将深入探讨SQL和NoSQL数据库在这两个方面的差异,并通过具体的代码示例来展示它们各自的优势。
28 0
|
2月前
|
JSON 数据格式 SQL
SQL开发问题之直接使用join方法在处理字符串类型属性时可能会遇到性能问题如何解决
SQL开发问题之直接使用join方法在处理字符串类型属性时可能会遇到性能问题如何解决
|
2月前
|
SQL 缓存 关系型数据库
提高SQL查询性能的技巧
【7月更文挑战第26天】提高SQL查询性能的技巧
38 3
|
2月前
|
SQL 运维 监控
MSSQL性能调优实战技巧:索引优化、SQL查询优化与并发控制策略
在Microsoft SQL Server(MSSQL)的运维过程中,性能调优是确保数据库高效运行、满足业务需求的关键环节
|
2月前
|
SQL 存储 安全
SQL安全性能:构建坚不可摧的数据防线
随着信息技术的发展,数据成为核心资产,SQL数据库作为关键工具,其安全性至关重要。本文探讨了SQL安全的重要性、常见威胁及对策: - **重要性**: 包括数据保护、业务连续性和合规要求。 - **威胁**: 如SQL注入、未经授权访问、数据泄露和拒绝服务攻击。 - **措施**: 实施访问控制、数据加密、定期更新/备份、审计/监控及漏洞管理。 - **最佳实践**: 定期培训、建立应急响应计划、持续评估改进和安全编程。 通过这些方法,组织能够构建强大的SQL数据防护体系。
53 0