欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2018年11月23日 10:26:28   投稿:mrr  
SOAR,即 SQL Optimizer And Rewriter,是一款 SQL 智能優(yōu)化與改寫工具,由小米運(yùn)維 DBA 團(tuán)隊(duì)出品。下面通過本文給大家分享小米正式開源 SQL 智能優(yōu)化與改寫工具 SOAR,感興趣的朋友一起看看吧

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

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

SOAR 簡(jiǎn)介

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

SOAR 體系架構(gòu)

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

語法解析和語法檢查

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

集成環(huán)境

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

優(yōu)化建議

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

重寫邏輯

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

工具集

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

SOAR 功能特點(diǎn)

SOAR的功能特點(diǎn)如下:

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

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

相關(guān)文章

  • SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json方法分享

    SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json方法分享

    這篇文章主要介紹了SQL Server中將數(shù)據(jù)導(dǎo)出為XML和Json方法分享,本文使用PowerShell中的BCP命令實(shí)現(xiàn)導(dǎo)出為文件,需要的朋友可以參考下
    2015-02-02
  • SQL?Server序列SEQUENCE用法介紹

    SQL?Server序列SEQUENCE用法介紹

    這篇文章介紹了SQL?Server中序列SEQUENCE的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 基于Python的SQL Server數(shù)據(jù)庫實(shí)現(xiàn)對(duì)象同步輕量級(jí)

    基于Python的SQL Server數(shù)據(jù)庫實(shí)現(xiàn)對(duì)象同步輕量級(jí)

    這篇文章主要介紹了基于Python的SQL Server數(shù)據(jù)庫對(duì)象同步輕量級(jí)實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • sql server把退款總金額拆分到盡量少的多個(gè)訂單中詳解

    sql server把退款總金額拆分到盡量少的多個(gè)訂單中詳解

    這篇文章主要給大家介紹了關(guān)于sql server把退款總金額拆分到盡量少的多個(gè)訂單中的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • SQL server查看各表的索引(sql語句大全)

    SQL server查看各表的索引(sql語句大全)

    使用Sql語句查看 SQL Server 數(shù)據(jù)庫中的索引,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • MsSql 存儲(chǔ)過程分頁代碼 [收集多篇]

    MsSql 存儲(chǔ)過程分頁代碼 [收集多篇]

    最近發(fā)現(xiàn)好多朋友看 mssql存儲(chǔ)過程分頁的代碼,特給大家整理了一些。希望對(duì)大家能有所幫助。
    2009-06-06
  • SQLServer 循環(huán)批處理

    SQLServer 循環(huán)批處理

    GO命令后面加一個(gè)常量就可以了
    2009-08-08
  • SQL?Server?2022?Enterprise安裝部署的實(shí)現(xiàn)步驟

    SQL?Server?2022?Enterprise安裝部署的實(shí)現(xiàn)步驟

    SQL?Server?2022是一款功能強(qiáng)大的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它提供了穩(wěn)定可靠的數(shù)據(jù)存儲(chǔ)和管理功能,本文主要介紹了SQL?Server?2022?Enterprise部署的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • 一文講懂SQL執(zhí)行順序

    一文講懂SQL執(zhí)行順序

    開發(fā)人員需要應(yīng)用SQL語句來構(gòu)建數(shù)據(jù)庫模型,測(cè)試人員需要用SQL語句來操作數(shù)據(jù)庫數(shù)據(jù),到底SQL語句的查詢執(zhí)行順序是怎樣的呢,本文就來介紹一下
    2023-09-09
  • 分頁 SQLServer存儲(chǔ)過程

    分頁 SQLServer存儲(chǔ)過程

    分頁 SQLServer存儲(chǔ)過程...
    2006-08-08

最新評(píng)論