searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

常见MySQL索引推荐工具核心原理剖析

2024-10-28 09:27:18
36
0

 

前言

在日常数据库运维过程中,绝大多数慢SQL产生的原因都是使用了不合理的索引,因此,索引优化是数据库性能优化的关键,尤其是MySQL这种不具备虚拟索引能力的数据库,更加依赖于索引推荐工具。 索引推荐作为一个较为古老的课题,在学术界与工业界都产生了不少优秀的作品,目前,例如SQLAdvisor、Soar、SQLess等等,本文将剖析这三种常见的索引推荐工具的内部原理。

基本信息

以下表格对比三种常见索引推荐工具的基本信息与索引推荐能力,对比所选用的是2024年3月的最新版本。

工具 发布时间 最近更新 开发语言
SQLAdvisor 2017年 2017.8 C
Soar 2018年 2023.12 Go
SQLess 2023年 2024.1 Python

 

原理剖析

本段落主要从源码角度剖析三种索引推荐工具的核心原理,并以流程图的形式进行展示,以下索引推荐工具均支持MySQL数据库。

SQL Advisor

SQLAdvisor 是一款 SQL 索引推荐工具,支持对用户输入SQL进行诊断优化,输出索引优化建议。 它基于 MySQL 原生词法解析,并基于DBA专家规则,结合 SQL 中的 where 条件以及字段选择度、聚合条件、多表 Join 关系等进行分析,输出最优索引优化建议,SQLAdvisor的核心原理如下图所示。

SQLAdvisor处理流程

 

 

 

Soar

Soar,全称 SQL Optimizer And Rewriter,是一款由SQL 智能优化与改写工具,支持SQL改写、SQL审核、执行计划分析、索引推荐等多种丰富的SQL诊断优化功能,是一个非常优秀的索引推荐工具。其中,Soar的索引推荐能力基于DBA专家规则,结合数据库元数据信息、统计信息,综合进行诊断分析后输出最优的索引建议,其核心原理如下图所示:

 

 

 

 

SQLess

SQLess是一款SQL智能诊断优化产品,提供了贯穿研发、集成、运维和持续优化各个阶段的SQL闭环能力。在SQL优化层面,SQLess提供了基于DBA专家规则与基于代价模型的索引推荐能力,但优先对OceanBase进行了更多的适配,MySQL等数据库仅支持部分的索引推荐能力,整体而言,SQLess也是一个极具参考意义的索引推荐工具,SQLess的索引推荐原理如下图所示:

 

 

 

 

总结

索引推荐能力对于数据库产品而言是及其核心的能力,各大厂商研发了许多基于代价模型、以及基于AI的索引推荐工具,然后,索引推荐作为核心技术,往往难以被普通人所免费使用,本文所述的三种常见的免费索引推荐工具,具有较好的索引推荐能力,是比较稳定的免费索引推荐工具,适合广大用户安装使用。

 

0条评论
0 / 1000
林****越
2文章数
0粉丝数
林****越
2 文章 | 0 粉丝
林****越
2文章数
0粉丝数
林****越
2 文章 | 0 粉丝
原创

常见MySQL索引推荐工具核心原理剖析

2024-10-28 09:27:18
36
0

 

前言

在日常数据库运维过程中,绝大多数慢SQL产生的原因都是使用了不合理的索引,因此,索引优化是数据库性能优化的关键,尤其是MySQL这种不具备虚拟索引能力的数据库,更加依赖于索引推荐工具。 索引推荐作为一个较为古老的课题,在学术界与工业界都产生了不少优秀的作品,目前,例如SQLAdvisor、Soar、SQLess等等,本文将剖析这三种常见的索引推荐工具的内部原理。

基本信息

以下表格对比三种常见索引推荐工具的基本信息与索引推荐能力,对比所选用的是2024年3月的最新版本。

工具 发布时间 最近更新 开发语言
SQLAdvisor 2017年 2017.8 C
Soar 2018年 2023.12 Go
SQLess 2023年 2024.1 Python

 

原理剖析

本段落主要从源码角度剖析三种索引推荐工具的核心原理,并以流程图的形式进行展示,以下索引推荐工具均支持MySQL数据库。

SQL Advisor

SQLAdvisor 是一款 SQL 索引推荐工具,支持对用户输入SQL进行诊断优化,输出索引优化建议。 它基于 MySQL 原生词法解析,并基于DBA专家规则,结合 SQL 中的 where 条件以及字段选择度、聚合条件、多表 Join 关系等进行分析,输出最优索引优化建议,SQLAdvisor的核心原理如下图所示。

SQLAdvisor处理流程

 

 

 

Soar

Soar,全称 SQL Optimizer And Rewriter,是一款由SQL 智能优化与改写工具,支持SQL改写、SQL审核、执行计划分析、索引推荐等多种丰富的SQL诊断优化功能,是一个非常优秀的索引推荐工具。其中,Soar的索引推荐能力基于DBA专家规则,结合数据库元数据信息、统计信息,综合进行诊断分析后输出最优的索引建议,其核心原理如下图所示:

 

 

 

 

SQLess

SQLess是一款SQL智能诊断优化产品,提供了贯穿研发、集成、运维和持续优化各个阶段的SQL闭环能力。在SQL优化层面,SQLess提供了基于DBA专家规则与基于代价模型的索引推荐能力,但优先对OceanBase进行了更多的适配,MySQL等数据库仅支持部分的索引推荐能力,整体而言,SQLess也是一个极具参考意义的索引推荐工具,SQLess的索引推荐原理如下图所示:

 

 

 

 

总结

索引推荐能力对于数据库产品而言是及其核心的能力,各大厂商研发了许多基于代价模型、以及基于AI的索引推荐工具,然后,索引推荐作为核心技术,往往难以被普通人所免费使用,本文所述的三种常见的免费索引推荐工具,具有较好的索引推荐能力,是比较稳定的免费索引推荐工具,适合广大用户安装使用。

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0