小米 SOAR 开源SQL优化工具安装
github :https://github.com/xiaomi/soar
安装说明 :https://github.com/XiaoMi/soar/blob/master/doc/install.md
源码下载 :https://GOlang.google.cn/dl/
配置环境变量:
tar -C /usr/local -xvf go1.12.5.linux-amd64.tar
全局用户变量:
vi /etc/profile
末尾添加:
export PATH=$PATH:/usr/local/go/bin
go版本查看:
# go version
source更新环境变量:
source /etc/profile
还需要配置GOPATH环境变量:表示go的工作目录 USER_NAME 为用户名
export GOPATH="/home/USER_NAME/go"
[root@b28-17-55 XiaoMi]# pwd
/home/USER_NAME/go/src/github.com/XiaoMi
[root@b28-17-55 opt]# mv soar-master.zip /home/USER_NAME/go/src/github.com/XiaoMi
[root@b28-17-55 XiaoMi]# unzip soar-master.zip
[root@b28-17-55 XiaoMi]# mv soar-master soar
[root@b28-17-55 soar]# make
若安装顺利,最终会显示success。否则 build error
常用命令 :https://github.com/XiaoMi/soar/blob/master/doc/cheatsheet.md
[root@b28-17-55 bin]# echo 'select * from film' | ./soar
# Query: 687D590364E29465
★ ★ ★ ☆ ☆ 75分
```sql
SELECT
*
FROM
film
```
## 最外层 SELECT 未指定 WHERE 条件
* **Item:** CLA.001
* **Severity:** L4
* **Content:** SELECT 语句没有 WHERE 子句,可能检查比预期更多的行(全表扫描)。对于 SELECT COUNT(\*) 类型的请求如果不要求精度,建议使用 SHOW TABLE STATUS 或 EXPLAIN 替代。
## 不建议使用 SELECT * 类型查询
* **Item:** COL.001
* **Severity:** L1
* **Content:** 当表结构变更时,使用 \* 通配符选择所有列将导致查询的含义和行为会发生更改,可能导致查询返回更多的数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」