SQL優(yōu)化還憑經(jīng)驗冰悠?這個工具能幫你智能優(yōu)化SQL

前言

SQL優(yōu)化是程序開發(fā)中經(jīng)常遇到的問題堡妒,尤其是在程序規(guī)模不斷擴大的時候。SQL的好壞不僅制約著程序的規(guī)模溉卓,影響著用戶的體驗涕蚤,甚至威脅著信息的安全。

我們經(jīng)常聽到說哪家平臺掛了的诵,哪家網(wǎng)站被黑了万栅,但我們不知道,其實這些平臺掛了西疤、被黑了的原因很多時候在于SQL不夠健壯烦粒。SQL不夠健壯易造成數(shù)據(jù)查詢超時、SQL注入代赁、信息泄漏等問題扰她。

SQL優(yōu)化歸根到底是SQL語句的優(yōu)化,索引的優(yōu)化芭碍。由于很多數(shù)據(jù)庫自帶的分析工具不夠強大便捷徒役,很多時候要想寫出好一點的SQL語句完全憑經(jīng)驗。這也是為什么有人說看一個程序員資歷深不深就看他寫的SQL好不好的原因窖壕。

憑經(jīng)驗做事不總是那么可靠的忧勿,況且也并不是人人都有那么多的經(jīng)驗杉女。那如果不靠經(jīng)驗,那新手怎么辦鸳吸?答熏挎,使用SOAR!

什么是SOAR

SOAR是SQL Optimizer And Rewriter的簡稱晌砾。SOAR是一個對SQL進行優(yōu)化和改寫的自動化工具坎拐,由小米人工智能與云平臺的數(shù)據(jù)庫團隊開發(fā)與維護。現(xiàn)在在GitHub上有4000多星养匈。

功能特點

SOAR有如下功能特點:

  • 跨平臺支持(支持Linux,哼勇、Mac、Windows環(huán)境)
  • 目前只支持 MySQL 語法族協(xié)議的SQL優(yōu)化
  • 支持基于啟發(fā)式算法的語句優(yōu)化
  • 支持復(fù)雜查詢的多列索引優(yōu)化(UPDATE, INSERT, DELETE, SELECT)
  • 支持EXPLAIN信息豐富解讀
  • 支持SQL指紋呕乎、壓縮和美化
  • 支持同一張表多條ALTER請求合并
  • 支持自定義規(guī)則的SQL改寫

安裝使用

SOAR支持Linux积担、Mac、Window環(huán)境楣嘁,可以在Linux磅轻、Mac珍逸、Window上安裝使用逐虚。下面以Window版本為例介紹安裝使用過程。

1谆膳、安裝Go

SOAR的使用依賴Go語言叭爱,所以在安裝使用之前,先安裝Go漱病。

下載地址:https://studygolang.com/dl

Go安裝完成后买雾,在cmd中輸入 go version ,如果出現(xiàn)版本信息杨帽,則表示安裝成功漓穿。

【數(shù)據(jù)庫】SQL優(yōu)化還憑經(jīng)驗?這個工具能幫你智能優(yōu)化SQL

如果報錯注盈,將將C:Goin(你的安裝路徑)加入環(huán)境變量晃危。

2、安裝SOAR

選擇windows版本下載SOAR安裝文件

下載地址:https://github.com/XiaoMi/soar/releases

將安裝文件soar.windows-amd64重命名為soar.exe老客,放置D:Program Files (x86)soar文件夾下僚饭,你也可以將這個目錄加入到環(huán)境變量中。

打開cmd胧砰,進入到soar.exe所在目錄鳍鸵,然后輸入 soar -version命令,如果出行版本信息尉间,則為安裝成功偿乖。

【數(shù)據(jù)庫】SQL優(yōu)化還憑經(jīng)驗击罪?這個工具能幫你智能優(yōu)化SQL

3、安裝Web圖形化工具

這一步不是必須的汹想,如果你喜歡命令行操作外邓,完成步驟2即可。選擇安裝Web圖形化工具古掏,只是為了方便操作损话。

安裝Web圖形化工具,可以在下面地址下載:

https://github.com/xiyangxixian/soar-web

此Web圖形化工具依賴Python3x槽唾、Flask丧枪、PyMysql、Pycryptodome庞萍。因此拧烦,安裝此Web圖形化工具前先安裝Python3x。待Python3x完成后钝计,執(zhí)行如下命令恋博,安裝其他依賴。

pip install -r requirement.txt

待所有依賴晚裝完畢私恬,執(zhí)行如下命令债沮,啟動服務(wù)。

run.bat

如下是安裝后的效果圖:

SQL優(yōu)化分析頁面

此頁面不僅可以分析SQL本鸣、智能改寫SQL疫衩,還可以美化SQL

你可以根據(jù)分析建議優(yōu)化SQL語句

SQL優(yōu)化建議效果

此Web圖形化工具的數(shù)據(jù)庫配置配置在LocalStorage,方便操作荣德,也不增加額外負擔(dān)

數(shù)據(jù)庫配置頁面

歡迎工作一到五年的Java工程師朋友們加入Java高并發(fā): 957734884闷煤,

群內(nèi)提供免費的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)涮瞻、高性能及分布式鲤拿、Jvm性能調(diào)優(yōu)、Spring源碼署咽,MyBatis近顷,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構(gòu)資料)合理利用自己每一分每一秒的時間來學(xué)習(xí)提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰艇抠!趁年輕幕庐,使勁拼,給未來的自己一個交代家淤!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末异剥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子絮重,更是在濱河造成了極大的恐慌冤寿,老刑警劉巖歹苦,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異督怜,居然都是意外死亡殴瘦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門号杠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚪腋,“玉大人,你說我怎么就攤上這事姨蟋√肟” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵眼溶,是天一觀的道長悠砚。 經(jīng)常有香客問我,道長堂飞,這世上最難降的妖魔是什么灌旧? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮绰筛,結(jié)果婚禮上枢泰,老公的妹妹穿的比我還像新娘。我一直安慰自己别智,他們只是感情好宗苍,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布稼稿。 她就那樣靜靜地躺著薄榛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪让歼。 梳的紋絲不亂的頭發(fā)上敞恋,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音谋右,去河邊找鬼硬猫。 笑死,一個胖子當(dāng)著我的面吹牛改执,可吹牛的內(nèi)容都是我干的啸蜜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼辈挂,長吁一口氣:“原來是場噩夢啊……” “哼衬横!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起终蒂,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蜂林,失蹤者是張志新(化名)和其女友劉穎遥诉,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體噪叙,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡矮锈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了睁蕾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苞笨。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖子眶,靈堂內(nèi)的尸體忽然破棺而出猫缭,到底是詐尸還是另有隱情,我是刑警寧澤壹店,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布猜丹,位于F島的核電站,受9級特大地震影響硅卢,放射性物質(zhì)發(fā)生泄漏射窒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一将塑、第九天 我趴在偏房一處隱蔽的房頂上張望脉顿。 院中可真熱鬧,春花似錦点寥、人聲如沸艾疟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔽莱。三九已至,卻和暖如春戚长,著一層夾襖步出監(jiān)牢的瞬間盗冷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工同廉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留仪糖,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓迫肖,卻偏偏與公主長得像锅劝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蟆湖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容