小米 SOAR 開源SQL優化工具安裝

haoge0205發表於2019-05-29

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:**  當表結構變更時,使用 \* 萬用字元選擇所有列將導致查詢的含義和行為會發生更改,可能導致查詢返回更多的資料。


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

相關文章