序文
SOAR(SQL Optimizer And Rewriter)は、SQLを最適化および再書き込みする自動化ツールです。Xiaomi人工知能とクラウドプラットフォームのデータベースチームによって開発および保守されています
Github https://github.com/XiaoMi/soar
インストール手順
1.Go環境をインストールします
https://blog.csdn.net/javanbme/article/details/112607083
2.ソースコードをダウンロードします
方法1リンク:https ://pan.baidu.com/s/1r4aJNCvG_rL9BmQfVptvhAパスワード:iwdjを/ opt / soarディレクトリに配置
方法2
cd /opt
mkdir soar
cd soar
wget -c https://github.com/XiaoMi/soar/releases/download/0.11.0/soar.linux-amd64
3.名前を変更します
mv soar.linux-amd64 soar
4.権限を追加します
chmod a+x /opt/soar/soar
5.構成ファイルを作成します
touch /opt/soar/soar.yaml
参照用に次の構成を追加します:https: //github.com/XiaoMi/soar/blob/dev/doc/config.md
# 线上环境配置
online-dsn:
addr: 127.0.0.1:3306
schema: test
user: root
password: newpass
disable: false
# 测试环境配置
test-dsn:
addr: 127.0.0.1:3306
schema: test
user: root
password: newpass
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: /opt/soar/soar.log
# 优化建议输出格式
report-type: markdown
ignore-rules:
- ""
# 黑名单中的 SQL 将不会给评审意见。一行一条 SQL,可以是正则也可以是指纹,填写指纹时注意问号需要加反斜线转义。
blacklist: /opt/soar/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
6.インストールの検証
echo 'select * from film' | ./soar
7.拡張-Webインターフェース表示。SQL最適化表示の一部を実行できます(無視できます)
https://github.com/xiyangxixian/soar-web