数据库诊断和优化过程具有相当的复杂性,通常需要专业的DBA来解决。但在云计算的今天,人力运维和支撑已经变得不可能,自动化,智能化运维和服务支持日益迫切。
阿里云数据库团队在这方面不断的探索和积累,产出了CloudDBA。其目的就是要把我们已知问题和最佳实践能够以最简单的方式告诉用户,把我们多年使用数据库的经验传承给用户,方便客户使用云上数据库,给客户带来直接的价值。CloudDBA同时也在服务着内部业务,数以千计的数据库实例之前需要一个team的运维人员,到现在我们只有一个同学,运维效率大幅提升。
CloudDBA一期给客户输出的功能包含数10项,迫不及待先给大家介绍SQL优化建议功能。
1. SQL优化方法
SQL对技术人员来说再熟悉不过,但开发人员和数据库人员对其却有不同的理解。比如开发人员看到的如下SQL语句,
在数据库中却是另外一种视图:
CloudDBA的SQL优化功能就是帮助数据库寻找最佳执行路径,将其优化成更为简洁和高效的视图:
2. SQL优化示例
示例1
SQL条件下推是多数开发人员忽视的问题,详细介绍及解法说明参见MySQL · 性能优化 · 条件下推到物化表 以及 MySQL · 性能优化 · MySQL常见SQL错误用法。
该例子中的SQL在开发人员工作中经常出现:
- 聚合子查询其实是先定义的一个视图,之后用的时候再加条件出结果(SQL看起来简洁^^);
- 条件是拼接出来的,或许还出了bug,匹配符号位置放错了;
这样的SQL写法一般都存在性能问题。
有了CloudDBA后,这些SQL问题都会直接提示给开发人员:
根据提示,创建索引,重写SQL性能大幅提升:
示例2
再贴一个复杂点SQL语句。继续体验一下CloudDBA的自动化建议:
CloudDBA帮助客户更轻松的运维数据库,更好的利用到阿里云数据库的性能。我们会不断努力,致力于阿里云数据库用户体验的提升!CloudDBA等待你的加入,实现更多闪耀的功能 。