濮阳杆衣贸易有限公司

主頁 > 知識庫 > 小米正式開源 SQL 智能優(yōu)化與改寫工具 SOAR

小米正式開源 SQL 智能優(yōu)化與改寫工具 SOAR

熱門標簽:智能語音外呼系統選哪家 百度地圖標注不同路線 奧威地圖標注多個地方 優(yōu)質地圖標注 武漢長沙外呼系統方法和技巧 怎樣在地圖上標注路線圖標 京華物流公司地圖標注 外呼系統電銷專用 千呼電銷機器人價格

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

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

SOAR 簡介

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

SOAR 體系架構

SOAR主要由語法解析器,集成環(huán)境,優(yōu)化建議,重寫邏輯,工具集五大模塊組成。

語法解析和語法檢查

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

集成環(huán)境

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

優(yōu)化建議

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

重寫邏輯

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

工具集

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

SOAR 功能特點

SOAR的功能特點如下:

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

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

您可能感興趣的文章:
  • 分析Mysql表讀寫、索引等操作的sql語句效率優(yōu)化問題
  • MySQL服務器 IO 100%的分析與優(yōu)化方案
  • Mysql優(yōu)化order by語句的方法詳解
  • MYSQL配置參數優(yōu)化詳解
  • MySQL中聚合函數count的使用和性能優(yōu)化技巧
  • Mysql查詢最近一條記錄的sql語句(優(yōu)化篇)
  • 30個mysql千萬級大數據SQL查詢優(yōu)化技巧詳解
  • PHP+MySQL實現對一段時間內每天數據統計優(yōu)化操作實例
  • SQL語句優(yōu)化之JOIN和LEFT JOIN 和 RIGHT JOIN語句的優(yōu)化
  • 數據庫sql語句優(yōu)化

標簽:七臺河 銅仁 威海 宿州 防疫戰(zhàn)設 來賓 益陽 天水

巨人網絡通訊聲明:本文標題《小米正式開源 SQL 智能優(yōu)化與改寫工具 SOAR》,本文關鍵詞  小米,正式,開源,SQL,智能,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《小米正式開源 SQL 智能優(yōu)化與改寫工具 SOAR》相關的同類信息!
  • 本頁收集關于小米正式開源 SQL 智能優(yōu)化與改寫工具 SOAR的相關信息資訊供網民參考!
  • 推薦文章
    禹城市| 江山市| 喀喇沁旗| 格尔木市| 肥城市| 郓城县| 仙游县| 衢州市| 越西县| 邹平县| 疏勒县| 怀化市| 营口市| 云南省| 讷河市| 望城县| 从江县| 湘乡市| 汉阴县| 柘城县| 弥渡县| 太和县| 姚安县| 深泽县| 和林格尔县| 平凉市| 双桥区| 高州市| 平远县| 华池县| 咸宁市| 浙江省| 乌鲁木齐市| 大城县| 乡城县| 竹北市| 香港| 涞水县| 仁寿县| 太湖县| 武鸣县|