技术开发 频道

揭开阿里云-云数据库管家神秘面纱

  【IT168 技术】阿里云数据库(RDS)的使命是“让天下没有难用的数据库”,让所有用户都能够轻松、便捷的管理云数据库。IT168得到消息,阿里云近期将会升级RDS控制台为云数据库管家。

其中,定期巡检数据库状况,推送数据库健康状况是系统的核心价值。这个功能能够让所有的开发者轻松的管理、维护数据库,有了它每个人都能成为专业的DBA。

阿里云数据库RDS正在免费体验中,大家可以去试用。

今天要介绍的是数据库管家中“优化引擎”的基本工作原理。主要从诊断方式和时间、诊断内容、优化思路这三方面剖析:

1. 诊断方式和时间

诊断系统的诊断方式分为两种,系统自动诊断和用户手工触发的诊断.

其中系统诊断目前由RDS后台系统自动触发,每次系统诊断时间间隔1小时。

用户也可以登录云数据库管家开启手工诊断,诊断报告大概在3-5分钟内生成。每天可进行手工诊断的次数暂时没有限制。

2. 会诊断云数据库的哪些信息

诊断系统会进行数据库安全、基本配置、性能三个维度的检测。

其中安全类会重点关注白名单配置、是否发生过疑似SQL注入。基本配置类会检查该实例是否创建过账号及数据库,从而判断该实例的空闲情况。性能类主要会反映CPU、IOPS、连接数和磁盘空间利用率等指标是否超出异常的阈值,并给出产生相应指标异常的诊断信息。

3. 使用DBA思路,优化解决问题.

诊断系统发现CPU、IOPS、连接数利用率突然飙升后,随即会去分析该实例的SQL慢查询,经过算法判断给出最终影响实例利用率飙升的SQL慢查询。随后将SQL慢查询经过类比分析器分析(该分析器内包含阿里集团优秀DBA的优化SQL语句的宝贵经验),从而给出优化这些慢查询的具体修复建议。

具体SQL优化建议如:

创建索引:在产生慢查询的表中,添加一条索引,有助于提升SQL语句的执行效率,从而减少SQL慢查询。

避免函数:在相关的SQL慢查询中,使用了一些函数调用比如:length(),max(),min()等。使用这些函数会导致索引匹配失效

隐式转换:在SQL语句调用中,字段与表结构定义不符,导致索引匹配失效。比如testc1字段是string类型,并且该字段testc1有索引。但是在SQL语句调用中使用了testc1=1,这样就会导致索引匹配失效

有了云数据库管家诊断系统精准的判断以及专业的建议,人人都可以成为一个专业的DBA了.

诊断系统诊断到磁盘空间利用率过高后(大于80%),会将诊断记录标为异常,随后进行更深入的检测。根据数据文件大小、日志文件大小、临时空间大小三个维度再排查、判断磁盘利用率过高的“罪魁祸首”。针对不同的“罪魁祸首”,云数据库管家会给出不同的处理建议,见下表: 

“罪魁祸首”

详细情况

处理建议

数据文件过大

给出数据量最大的5个表名

提示升级磁盘空间或者使用optimize table命令压缩表空间

日志文件过大

频繁更新的5个表

在管理控制台上直接清除binlog文件

临时空间过大

临时空间过大,通常会有想应的慢查询

用kill命令杀掉此条慢查询

通过云数据库管家的多维度分析,是不是感觉之前处理磁盘利用率高有点“简单粗暴”了。

    想了解更多优化引擎规则,请关注《揭开阿里云-云数据库管家神秘面纱(二)--基于规则的优化引擎让你摸得到》

2
相关文章