文档

库表结构优化

更新时间:

AnalyticDB MySQL版提供的库表结构优化功能,为用户提供降低集群使用成本,提高集群使用效率的调优建议。本功能持续收集SQL查询的性能指标及其使用到的数据表、索引等信息,并进行算法统计分析,自动给出调优建议,减少用户手动调优的负担。

背景信息

随着各类数据分析业务的丰富和发展,数据库所承载的查询数量和复杂度持续增加。库表结构的设计和优化对数据库整体使用成本和查询性能的影响尤其显著。要做好库表结构设计和优化,用户通常需要关注以下信息:

  • 数据库引擎架构

    用户需要了解数据库引擎的存储和计算架构特点,才能结合业务的数据分布特征与业务场景特征,进行数据建模,从而设计出符合引擎架构特点的数据表结构。

  • SQL特征差异

    即席查询的SQL变化较大,包括参与JOIN的表个数、JOIN条件、分组聚合的字段个数以及过滤条件等。

  • 数据特征差异

    用户的数据分布和查询特征会随着业务特征的变化而变化,若一直按照最初的建模方式和SQL语句,将无法保障SQL引擎发挥出最大优势,而数据特征或业务模型的变化,都会导致SQL性能回退。

基于以上问题,AnalyticDB MySQL版为用户提供了高效且智能的库表结构优化功能,直观地为用户提供调优建议,从而降低集群使用成本,提高集群使用效率。

注意事项

  • 3.1.4以上版本的AnalyticDB MySQL版支持库表结构优化功能。

  • 库表结构优化功能的调优建议是根据用户数据和查询特征的历史数据分析得到的。当用户数据和查询特征稳定,则相关建议的有效性可持续;当用户数据和查询特征发生剧烈变化,则由历史数据分析得到的调优建议的参考价值明显下降。在使用该功能前,请用户根据自身业务特征的变化情况考虑是否采用相应建议。

功能说明

库表结构优化功能提供冷热数据优化和索引优化两种类型的优化建议。

冷热数据优化

分析数据表的使用情况,对长期未使用的数据表,建议将其迁移至冷盘存储,以减低数据表存储成本。此类型的优化建议针对数据表级别。迁移数据表到冷盘存储的具体操作,请参见数据存储冷热分离

说明

数据表迁移至冷盘后,该数据表的查询时间会变长。

索引优化

分析数据索引的使用情况,对长期未使用的数据索引,建议将其删除,以降低数据索引的存储成本。数据库利用索引进行查询数据过滤的原理,请参见过滤条件不下推

说明

数据索引删除后,如果查询再次使用该数据列进行过滤操作,查询时间会变长。

操作步骤

  1. 登录云原生数据仓库AnalyticDB MySQL控制台
  2. 在页面左上角,选择集群所在地域。
  3. 在左侧导航栏,单击集群列表
  4. 数仓版(3.0)页签下,单击目标集群ID
  5. 在左侧导航栏,单击诊断与优化

  6. 单击库表结构优化页签。

  7. 可用优化建议页签下,单击右上角的开启,打开库表结构优化功能。若当前实例已开启库表结构优化功能,可跳过本步骤。

  8. 单击可用优化建议已采纳的建议,用户可以查看可用优化建议和已采纳的建议。

    • 单击可用优化建议页签,用户可以在查询列表中查看各项参数的相关信息,并执行应用操作。

      参数

      说明

      建议ID

      优化建议的ID。

      SQL

      优化建议需要变更的表和相应定义等。

      优化类型

      优化类型分为:冷热数据优化和索引优化。

      具体优化建议

      针对优化类型,给出的具体优化建议。

      预期优化收益

      优化建议应用后带来的预期收益。

      说明

      预期优化收益是基于历史数据统计的预估值,非实时统计的准确值,仅供参考。

      具体操作指引

      当优化类型为冷热数据优化和索引优化时,用户可以对当前优化建议采取一键应用操作。

      说明
      • 一键应用,表示同意采纳该优化建议。一键应用后相应实例将执行SQL变更,同时该建议将出现在已采纳的建议页签中。

      • 一键应用的效果等同于在客户端执行相应SQL,不支持撤销操作,请谨慎使用。

    • 已采纳的建议页签下,选择查询时间后单击右上角查询,按采纳建议日期和时间查询已采纳的建议。

      说明

      建议SQL下发后,需要数据表完成Build操作后方可完成应用,Build操作是数据库系统按一定规则自动触发的,未触发前,相应建议处于“运行中”的状态,触发后变为“已完成”状态。