天天看點

小米 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"

[[email protected] XiaoMi]# pwd

/home/USER_NAME/go/src/github.com/XiaoMi

[[email protected] opt]# mv soar-master.zip /home/USER_NAME/go/src/github.com/XiaoMi

[[email protected] XiaoMi]# unzip soar-master.zip

[[email protected] XiaoMi]# mv soar-master soar

[[email protected] soar]# make

若安裝順利,最終會顯示success。否則 build error

常用指令 :https://github.com/XiaoMi/soar/blob/master/doc/cheatsheet.md

[[email protected] 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:**  當表結構變更時,使用 \* 通配符選擇所有列将導緻查詢的含義和行為會發生更改,可能導緻查詢傳回更多的資料。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28939273/viewspace-2646053/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/28939273/viewspace-2646053/