国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

小米正式開源 SQL 智能優化與改寫工具 SOAR

2020-07-25 12:36:45
字體:
來源:轉載
供稿:網友

近日,小米正式宣布開源 SOAR。

截至今日,該項目已經獲得了 350 個「star」以及 44 個「fork」(GitHub項目地址:https://github.com/XiaoMi/soar)

SOAR 簡介

SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能優化與改寫工具,由小米運維 DBA 團隊出品

SOAR 體系架構

SOAR主要由語法解析器,集成環境,優化建議,重寫邏輯,工具集五大模塊組成。

語法解析和語法檢查

一條SQL從文件,標準輸入或命令行參數等形式傳遞給SOAR后首先進入語法解析器,選用了vitess的語法解析庫作為SOAR的語法解析庫,但隨時需求的不斷增加我們發現有些復雜需求使用vitess的語法解析實現起來比較邏輯比較復雜。于是參考業辦其他數據庫產品,于是引入了TiDB的語法解析器做為補充。后來發現這兩個解析庫還存在一定的盲區,于是又引入了MySQL執行返回結果作為多多版本SQL方言的補充。大家也可以看到在語法解析器這里,SOAR的實現方案是松散的、可插拔的。SOAR并不直接維護龐大的語法解析庫,它把各種優秀的語法解析庫集成在一起,各取所長。

集成環境

集成環境區分線上環境和測試環境兩種,分別用于解決不同場景下用戶的SQL優化需求。一種常見的情況是已有表結構需要優化查詢SQL的場景,可以從線上環境導出表結構和足夠的采樣數據到測試環境,在測試環境上就可以放心的執行各種高危操作而不用擔心數據被損壞。另一種常見的情況是建一套全新的數據庫,需要驗證提供的數據字典中是否存在優化的可能。對于這種情況,很有可能你不需要知道線上環境在哪兒,完全只是想先試試看,如果報錯了馬上改對就是了。當然還有更多種組合的場景需求,將在集成環境一單分類說明。

優化建議

目前SOAR可以提供的優化建議有基于啟發式規則(通常也稱之為經驗)的優化建議,基于索引優化算法給出的索引優化建議,以及基于EXPLAIN信息給出的解讀。

重寫邏輯

上面提到的優化建議是早期實現的主要功能,早期的功能還只是停留在建議上,對于一些初級用戶看到建議也不一定會改寫。為了進一步簡化SQL優化的成本,SOAR又進一步挖掘了自動SQL重寫的功能?,F在提供幾十種常見場景下的SQL等價轉寫,不過相比SQL優化建議還有很大的改進空間。這部分的功能和邏輯將在重寫邏輯一章中詳細說明。

工具集

除了SQL優化和改寫以外,為了方便用戶使用以及美化輸出展現形式,SOAR還提供了一些輔助的小工具,比如markdown轉HTML工具,SQL格式化輸出工具等等。你可以在常用命令中找到這些小工具的使用方法。

SOAR 功能特點

SOAR的功能特點如下:

● 跨平臺支持(支持Linux, Mac環境,Windows環境理論上也支持,不過未全面測試)
● 支持基于啟發式算法的語句優化
● 支持復雜查詢的多列索引優化(UPDATE, INSERT, DELETE, SELECT)
● 支持EXPLAIN信息豐富解讀
● 支持SQL指紋、壓縮和美化
● 支持同一張表多條ALTER請求合并
● 支持自定義規則的SQL改寫

此外,小米的SOAR與業內其他優秀產品對比,也有著非常大的優勢:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 聂拉木县| 丹东市| 察哈| 宜兰市| 三门县| 桦南县| 温宿县| 五大连池市| 青阳县| 盈江县| 宁夏| 岳阳市| 青阳县| 陵川县| 政和县| 桂东县| 德保县| 拉萨市| 饶平县| 黔西| 遂宁市| 阿瓦提县| 金平| 德安县| 启东市| 丰都县| 海安县| 四子王旗| 遂昌县| 宁陕县| 襄樊市| 米易县| 镇雄县| 杂多县| 银川市| 云阳县| 镇安县| 广河县| 芜湖市| 兴化市| 定陶县|