新聞中心
Paw Index Advisor是PawSQL團(tuán)隊(duì)開(kāi)發(fā)的面向數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)人員和DBA等數(shù)據(jù)庫(kù)運(yùn)維人員的自動(dòng)化、智能化、基于代價(jià)的索引推薦工具。

10年積累的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有嶧城免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
上一篇(一個(gè)優(yōu)秀的數(shù)據(jù)庫(kù)索引推薦IDEA插件)簡(jiǎn)要介紹了Paw Index Advisor的能力,這次小編詳細(xì)介紹一下索引推薦神器Paw Index Advisor的配置項(xiàng)及相關(guān)注意事項(xiàng)。
Paw Index Advisor的配置頁(yè)面如下:
Query Type(查詢類型):
指定輸入待分析SQL的類型,目前支持兩種查詢語(yǔ)句格式,
- SQL files,原生SQL文件, 支持ansi標(biāo)準(zhǔn)的SQL語(yǔ)法;詳細(xì)的語(yǔ)法及語(yǔ)法對(duì)應(yīng)的索引推薦將在后一個(gè)章節(jié)(Paw Index Advisor使用手冊(cè)(2)-語(yǔ)法支持)中詳細(xì)描述。
- Mapper files,從Mybatis的mapper配置文件里提取SQL, 并通過(guò)解析獲取所有可能的SQL組合。Paw Index Advisor通過(guò)一個(gè)智能的引擎,能夠?qū)apper文件中的占位符根據(jù)其上下文推斷其數(shù)據(jù)類型并對(duì)其賦于一個(gè)合法的常量,從而使其能夠生產(chǎn)合法的SQL語(yǔ)句,以便進(jìn)行后續(xù)的查詢語(yǔ)句結(jié)構(gòu)分析。Mapper files作為輸入對(duì)于應(yīng)用開(kāi)發(fā)人員非常重要,因?yàn)樵趹?yīng)用開(kāi)發(fā)初期,開(kāi)發(fā)人員對(duì)于前端的輸入組合無(wú)法完全掌握,所能組合的SQL業(yè)務(wù)無(wú)法確定,此選項(xiàng)可以確保對(duì)于所有的組合,都能夠合適的索引推薦出來(lái)以提升性能。
注意:由于Mapper配置文件可能書(shū)寫(xiě)不夠規(guī)范,導(dǎo)致組合出的某些SQL語(yǔ)句在真實(shí)的場(chǎng)景下永遠(yuǎn)不會(huì)出現(xiàn),進(jìn)而推薦出無(wú)用的索引。所以建議在程序上線后,或是在UAT測(cè)試階段,通過(guò)querylog抓取真實(shí)的SQL作為輸入,再一次使用Paw Index Advisor.
Database Vendor(數(shù)據(jù)庫(kù)類型):
指定連接的數(shù)據(jù)庫(kù)類型,目前支持MySQL,PostgreSQL,Opengauss三種數(shù)據(jù)庫(kù)類型。其他基于遵循MySQL/PostgreSQL客戶端協(xié)議的數(shù)據(jù)庫(kù)理論上也可以支持,但未經(jīng)過(guò)全面測(cè)試。
數(shù)據(jù)庫(kù)連接信息,數(shù)據(jù)庫(kù)連接信息作用有兩個(gè):
- 用來(lái)獲取SQL對(duì)應(yīng)的數(shù)據(jù)庫(kù)對(duì)象,包括數(shù)據(jù)庫(kù)表,列定義,以及表上現(xiàn)有的索引信息。表和列定義用來(lái)解析輸入的SQL,現(xiàn)有的索引信息后續(xù)會(huì)被用來(lái)進(jìn)行推薦索引和現(xiàn)有索引的排重。
- 數(shù)據(jù)庫(kù)連接信息用來(lái)對(duì)推薦的索引進(jìn)行what-if 驗(yàn)證,以確保推薦的索引在實(shí)際的SQL執(zhí)行計(jì)劃中能夠被選中,從而提升SQL的查詢性能。
- Database host/port:數(shù)據(jù)庫(kù)地址及端口
- ?User:數(shù)據(jù)庫(kù)用戶名:
- Password:數(shù)據(jù)庫(kù)用戶密碼
- DefaultDB:默認(rèn)數(shù)據(jù)庫(kù)名稱,鏈接默認(rèn)的數(shù)據(jù)庫(kù)名稱
- Database/schema List:數(shù)據(jù)庫(kù)列表(MySQL)或是模式列表(PostgreSQL/Opengauss).
- Deduplicate with existing indice(是否和現(xiàn)有的索引進(jìn)行排重):選擇此選項(xiàng)的場(chǎng)景是不考慮刪除現(xiàn)有的索引,因?yàn)檩斎氲腟QL只是并不能代表這個(gè)數(shù)據(jù)庫(kù)上所有的SQL場(chǎng)景。所以只考慮新增對(duì)輸入SQL有幫助的索引。
如果能夠確保輸入的SQL包含此數(shù)據(jù)庫(kù)所有的查詢,那么只保留推薦的索引就可以了,這種情況下可以不選擇此選項(xiàng),并且使用新推薦的索引代替現(xiàn)有的索引。
- What-if analysis validation(是否對(duì)推薦的索引進(jìn)行what-if驗(yàn)證):確保推薦的索引在實(shí)際的SQL執(zhí)行計(jì)劃中能夠被選中,從而避免推薦無(wú)效索引。
注意:此選項(xiàng)應(yīng)避免在生產(chǎn)庫(kù)上使用,因?yàn)閷?duì)于沒(méi)有內(nèi)置what-if(內(nèi)置虛擬索引)的數(shù)據(jù)庫(kù)(MySQL/Postgres皆是)來(lái)說(shuō),Paw Index Advisor是通過(guò)創(chuàng)建推薦索引并進(jìn)行explain分析執(zhí)行計(jì)劃,然后刪除推薦索引的方式來(lái)做的。這個(gè)過(guò)程在生產(chǎn)庫(kù)上會(huì)消耗一定的資源,且執(zhí)行時(shí)間會(huì)比較長(zhǎng),可能對(duì)生產(chǎn)庫(kù)上的業(yè)務(wù)運(yùn)行產(chǎn)生影響。
本次內(nèi)容小編就介紹到這里了,PawSQL專注數(shù)據(jù)庫(kù)性能優(yōu)化,
網(wǎng)頁(yè)名稱:索引推薦神器PawIndexAdvisor-配置
網(wǎng)站URL:http://fisionsoft.com.cn/article/cdooogd.html


咨詢
建站咨詢
