zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

CloudDBA初体验:SQL优化建议

SQL 优化 建议 初体验
2023-09-27 14:26:11 时间

数据库诊断和优化过程具有相当的复杂性,通常需要专业的DBA来解决。但在云计算的今天,人力运维和支撑已经变得不可能,自动化,智能化运维和服务支持日益迫切。

阿里云数据库团队在这方面不断的探索和积累,产出了CloudDBA。其目的就是要把我们已知问题和最佳实践能够以最简单的方式告诉用户,把我们多年使用数据库的经验传承给用户,方便客户使用云上数据库,给客户带来直接的价值。CloudDBA同时也在服务着内部业务,数以千计的数据库实例之前需要一个team的运维人员,到现在我们只有一个同学,运维效率大幅提升。

CloudDBA一期给客户输出的功能包含数10项,迫不及待先给大家介绍SQL优化建议功能。

1. SQL优化方法

SQL对技术人员来说再熟悉不过,但开发人员和数据库人员对其却有不同的理解。比如开发人员看到的如下SQL语句,

屏幕快照 2017-09-27 16.04.04.png

在数据库中却是另外一种视图:

屏幕快照 2017-09-27 16.08.25.png

CloudDBA的SQL优化功能就是帮助数据库寻找最佳执行路径,将其优化成更为简洁和高效的视图:

屏幕快照 2017-09-27 16.12.32.png

2. SQL优化示例

SQL条件下推是多数开发人员忽视的问题,详细介绍及解法说明参见MySQL · 性能优化 · 条件下推到物化表 以及 MySQL · 性能优化 · MySQL常见SQL错误用法

该例子中的SQL在开发人员工作中经常出现:

聚合子查询其实是先定义的一个视图,之后用的时候再加条件出结果(SQL看起来简洁^^); 条件是拼接出来的,或许还出了bug,匹配符号位置放错了;

这样的SQL写法一般都存在性能问题。

屏幕快照 2017-09-27 16.23.09.png


有了CloudDBA后,这些SQL问题都会直接提示给开发人员:

22.png

根据提示,创建索引,重写SQL性能大幅提升:

33.png

再贴一个复杂点SQL语句。继续体验一下CloudDBA的自动化建议:

屏幕快照 2017-09-27 16.54.55.png


CloudDBA帮助客户更轻松的运维数据库,更好的利用到阿里云数据库的性能。我们会不断努力,致力于阿里云数据库用户体验的提升!CloudDBA等待你的加入,实现更多闪耀的功能 。

试用请点击


使用AI优化慢SQL,开发秒变DBA 慢 SQL 经常会让应用程序响应变慢,轻者影响用户体验,严重的时候可能会导致服务不可用。如果,每次遇到慢 SQL 都求助于 DBA,一方面效率很低,另一方面也会很没面子。所以,我们一起来看看如何使用AI能力给出超越一般DBA的 SQL 优化建议。NineData( www.ninedata.cloud )面向每个开发人员提供了免费的 SQL 开发功能,同时也提供了免费的 AI SQL 优化功能。
晚饭都没吃,我一前端帮后端做了一点SQL优化,才避免了通宵 最近上线了一个新系统,刚试点运行,用户量不大还没什么大问题。但随之培训和大规模用户开始使用后,问题出现了。而且出现了好多问题,大部分都是后端的,这里就不细讲了。说说与我前端相关的吧。由于我会一点后端。
最完整的Explain总结,妈妈再也不担心我的SQL优化了 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)
不可置信!SQL 优化终于干掉了“distinct” sql 优化之多表联合查询干掉 “distinct” 去重关键字 在我提交了代码的时候,架构师给我指出我这个sql这样写会有问题。因为在分库分表的时候,是不支持子查询的。 所以需要把多表的子查询的 sql 结构进行优化。 是不是挺恐怖的;(此处为了脱敏,我把相关的 sql 关键词都给打码掉了)
雷尚顺 阿里云数据库内核服务组,花名西扬。CloudDBA架构师,致力于数据库智能诊断和优化。