soar以及web页面安装使用

343 阅读2分钟

本文已参加「新人创作礼」活动,一起开启掘金创作之路

  1. soar下载安装
    1. 下载使用下载地址
    2. windows下将文件重命名为soar.exe,linux下赋予执行权限
3. 在soar同级目录下创建etc文件夹,创建soar.yaml (不配置也行,会少了EXPLAIN分析)
    ```yaml
    # 线上环境配置
    online-dsn:
      addr: 127.0.0.1:3306
      schema: compstore2
      user: root
      password: 123456
      disable: false
    # 测试环境配置
    test-dsn:
      addr: 127.0.0.1:3306
      schema: compstore2
      user: root
      password: 123456
      disable: false
    # 是否允许测试环境与线上环境配置相同
    allow-online-as-test: true
    # 是否清理测试时产生的临时文件
    drop-test-temporary: true
    # 语法检查小工具
    only-syntax-check: false
    sampling-statistic-target: 100
    sampling: false
    # 日志级别,[0:Emergency, 1:Alert, 2:Critical, 3:Error, 4:Warning, 5:Notice, 6:Informational, 7:Debug]
    log-level: 7
    log-output: etc/soar.log
    # 优化建议输出格式
    report-type: markdown
    ignore-rules:
    - ""
    # 黑名单中的 SQL 将不会给评审意见。一行一条 SQL,可以是正则也可以是指纹,填写指纹时注意问号需要加反斜线转义。
    blacklist: etc/soar.blacklist
    # 启发式算法相关配置
    max-join-table-count: 5
    max-group-by-cols-count: 5
    max-distinct-count: 5
    max-index-cols-count: 5
    max-total-rows: 9999999
    spaghetti-query-length: 2048
    allow-drop-index: false
    # EXPLAIN相关配置
    explain-sql-report-type: pretty
    explain-type: extended
    explain-format: traditional
    explain-warn-select-type:
    - ""
    explain-warn-access-type:
    - ALL
    explain-max-keys: 3
    explain-min-keys: 0
    explain-max-rows: 10000
    explain-warn-extra:
    - ""
    explain-max-filtered: 100
    explain-warn-scalability:
    - O(n)
    query: ""
    list-heuristic-rules: false
    list-test-sqls: false
    verbose: true
    ```
3. 使用
    1. 给出优化建议(windows下无法使用echo)`soar.exe -query sql.sql`
   ![](https://image.jaminye.cn/img/20210614103626.png)
    2. 美化sql `type .\sql.sql |.\soar.exe -report-type=pretty`
    ![](https://image.jaminye.cn/img/20210614103240.png)
4. 可视化soar-web安装
    1. 克隆项目[soar-web项目](https://github.com/xiyangxixian/soar-web.git)
    2. 安装python环境(安装步骤省略) 我这里用的目前最新的3.9.5
    3. 安装依赖`pip install Flask pymysql pycryptodome`
    4. 启动用脚本或者手动都行`python .\soar-web.py`
    5. 打开浏览器访问`http://127.0.0.1:5077`就行
5. 可视化soar-web使用
    1. 配置(不配置也行,会少了EXPLAIN分析)
    ![](https://image.jaminye.cn/img/20210614105855.png)
    2. 评估,美化,压缩,其他大家按需求使用
    ![](https://image.jaminye.cn/img/20210614110539.png)
    
    
6.参考
[小米SOAR工具使用说明(Windows)](https://blog.csdn.net/m0_37524586/article/details/88351728)
[soar项目](https://github.com/XiaoMi/soar)
[soar-web项目](https://github.com/xiyangxixian/soar-web)