• sql优化工具--美团SQLAdvisor


    美团点评SQL优化工具SQLAdvisor开源

                                               介绍

    在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务。例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率。

    目前常用的 SQL 优化方式包括但不限于:业务层优化、SQL逻辑优化、索引优化等。其中索引优化通常通过调整索引或新增索引从而达到 SQL 优化的目的。索引优化往往可以在短时间内产生非常巨大的效果。如果能够将索引优化转化成工具化、标准化的流程,减少人工介入的工作量,无疑会大大提高DBA的工作效率。

    SQLAdvisor 是由美团点评公司北京DBA团队开发维护的 SQL 优化工具:输入SQL,输出索引优化建议。 它基于 MySQL 原生词法解析,再结合 SQL 中的 where 条件以及字段选择度、聚合条件、多表 Join 关系等最终输出最优的索引优化建议。目前 SQLAdvisor 在公司内部大量使用,较为成熟、稳定。

    现在,我们非常高兴地将 SQLAdvisor 开源,项目 GitHub 地址:https://github.com/Meituan-Dianping/SQLAdvisor 。我们已经把相关开发工作全面转到 GitHub 上,开源版本和内部使用版本保持完全一致。希望与业内有类似需求的团队,一起打造一款优秀的 SQL 优化产品。

    SQLAdvisor使用举例

    sql: SELECT id FROM crm_loan WHERE id_card = '1234567'
    cmd: ./sqladvisor -h xx -P xx -u xx -pxx -d xx -q "SELECT id FROM crm_loan WHERE id_card = '1234567'"
    SQLAdvisor输出: alter table crm_loan add index idx_id_card(id_card)
    

    SQLAdvisor快速入门教程

    SQLAdvisor的优点

    • 基于 MySQL 原生词法解析,充分保证词法解析的性能、准确定以及稳定性;
    • 支持常见的 SQL(Insert/Delete/Update/Select);
    • 支持多表 Join 并自动逻辑选定驱动表;
    • 支持聚合条件 Order by 和 Group by;
    • 过滤表中已存在的索引。

    SQLAdvisor原理介绍

    Join 处理

    1. Join语法分为两种:Join on 和 Join using,并且 Join on 有时会存在 where 条件中。
    2. 分析 Join 条件首先会得到一个 nested_join 的 table list,通过判断它的 join_using_fields 字段是否为空来区分 Join on 与 Join using。
    3. 生成的 table list 以二叉树的形式进行存储,以后序遍历的方式对二叉树进行遍历。
    4. 生成内部解析树时,right Join 会转换成 left Join。
    5. Join 条件会存在当层的叶子节点上,如果左右节点都是叶子节点,会存在右叶子节点。
    6. 每一个非叶子节点代表一次 Join 的结果。

    详细原文位置:

    http://tech.meituan.com/sqladvisor_pr.html

  • 相关阅读:
    leetcode 86. Partition List
    leetcode 303. Range Sum Query
    leetcode 1310. XOR Queries of a Subarray
    leetcode 1309. Decrypt String from Alphabet to Integer Mapping
    leetcode 215. Kth Largest Element in an Array
    将numpy.ndarray写入excel
    leetcode 1021 Remove Outermost Parentheses
    leetcode 1306. Jump Game III
    leetcode 1305. All Elements in Two Binary Search Trees
    ICCV2019 oral:Wavelet Domain Style Transfer for an Effective Perception-distortion Tradeoff in Single Image Super-Resolution
  • 原文地址:https://www.cnblogs.com/cyt1153/p/6576025.html
Copyright © 2020-2023  润新知