小米将开源自研智能SQL优化与改写工具

10月20日,在开源先锋日(OSCAR)上,小米将宣布开源自研的SOAR(SQL Optimizer And Rewriter)。这是一款智能SQL优化和改写工具,开发人员可以直接通过此工具快速的对自己的SQL进行质量检查,生成评估报告,防止将问题SQL带到线上从而导致服务质量下降。它不仅能够尽可能地提高线上代码质量,还能避免一些由于人为疏漏而带来的隐患。

在过去的几年间,小米互联网业务高速发展,数据库规模也在不断的增长。为了提供稳定、高效的数据库服务,进一步的提高DBA工作效率,解放生产力,小米DBA基于Go语言自主研发了智能SQL优化改写工具SOAR。该工具在内部使用期间效果显著,小米运维部决定将其开源,为开源数据库生态助力。 

SOAR由语法解析器、集成环境、优化建议、重写逻辑、工具集五大模块组成。它拥有独立的不依赖数据库的SQL解析能力,能够通过提供的集成环境对SQL本身及数据库环境进行评审,找出可能存在的隐患或问题。

《小米将开源自研智能SQL优化与改写工具》

SOAR中结合了大量书籍文献,吸纳了专家们的宝贵经验,将SQL优化方法论转化为服务。SOAR使用Go语言开发,参考业界公认的数据库编程规范,不仅能够指出常见的100多种SQL质量问题,也可对复杂查询给出索引优化建议,并且提供了几十种类型SQL的自动改写能力;SOAR的启发式策略是动态可插拔的,即可根据需求定制适合的编程规范,亦可针对不同场景进行灵活配置;SOAR还能够对SQL语句输出EXPLAIN信息解读,协助DBA或开发者快速诊断SQL。

为了进一步方便使用,小米DBA还基于SOAR提供了常用的编辑器插件,能够在编写SQL语句时实时给予修改建议。

《小米将开源自研智能SQL优化与改写工具》

用户还可以基于SOAR丰富的配置来定制喜欢的使用展现形式。比如小米DBA在内部SQL自动化平台中基于SOAR提供了web端的SQL自助审核工具。

《小米将开源自研智能SQL优化与改写工具》

除了SQL优化和改写以外,为了方便用户使用以及美化输出展现形式,SOAR还提供了一些辅助的小工具,比如markdown转HTML工具,SQL格式化输出工具等等。

拥抱开源是小米工程文化的一个重要组成部分,从手机的移动操作系统,到云计算、大数据、人工智能,开源都在小米扮演了极其重要的角色。小米DBA们深知SQL优化的苦和累,所以我们也希望能够将我们的工具贡献到开源社区来帮助那些跟我们有同样需求的人。希望能够与同行一起交流SQL优化的算法和心得,一同完善SOAR,助力开源数据库生态发展。

    原文作者:SQL
    原文地址: https://juejin.im/entry/5bbf21fde51d450e61605d99
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞