머리말
SOAR (SQL Optimizer 및 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. 확장 웹 인터페이스 표시 및 일부 SQL 최적화 표시 수행 가능 (무시 가능)
https://github.com/xiyangxixian/soar-web