Dex – MongoDB索引優化工具怎么使用以及原理有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
淮南網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、自適應網站建設等網站項目制作,到程序開發,運營維護。成都創新互聯公司從2013年創立到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。
Dex是一個開源的MongoDB優化工具,它通過對查詢日志和當前數據庫索引進行分析,向管理員提出高效的索引優化策略。
Dex – MongoDB索引優化工具怎么使用
安裝
pip install dex
開始監控
dex -f mongodb.log mongodb://localhost
在監控過程中,dex會通過stderr輸出推薦的結果
{
"index": "{'simpleIndexedField': 1, 'simpleUnindexedFieldThree': 1}",
"namespace": "dex_test.test_collection"
"shellCommand": "db.test_collection.ensureIndex(
{'simpleIndexedField': 1, 'simpleUnindexedFieldThree': 1}, {'background': true})"
}
還會輸出一些統計信息
Total lines read: 7
Understood query lines: 7
Unique recommendations: 5
Lines impacted by recommendations: 5
我們看到,在輸出結果中,有一個shellCommand字段,里面就是添加索引的語句,如果你覺得dex的推薦不錯,就可以直接復制這段腳本在MongoDB上添加索引了。相當方便。
除了運行過程中會向stderr中輸出信息名,在運行結束后,推薦信息還會打包成一個大的JSON對象在stdout中輸出一次。
Dex – MongoDB索引優化工作原理有哪些
Dex在運行過程中主要會進行下面三個步驟。
1.解析query
2.通過已存在的索引對當前query進行判斷
3.如果發現索引不當,就推薦合適的索引
第一步:解析query
Dex會對查詢query進行解析,分成下面幾大類
EQUIV – 普通按數值進行的查詢,比如:{a: 1}
SORT – sort操作,比如: .sort({a: 1})
RANGE – 范圍查詢,比如:Specifically: ‘$ne’, ‘$gt’, ‘$lt’, ‘$gte’, ‘$lte’, ‘$in’, ‘$nin’, ‘$all’, ‘$not’
UNSUPPORTED
組合式查詢,比如:$and, $or, $nor
除了RANGE之外的嵌套查詢
第二步:判斷當前索引情況
有兩個標準來找出查詢所需的索引。
Coverage (none, partial, full) - Coverage表示索引的情況,有括號中的三個值。none表示完全無索引覆蓋。full表示query中的字段都能找到索引。partial表示none和full之間的情況。
Order (ideal or not) - Order是用于判斷索引的順序是否理想。理想的索引順序應該是:
Equivalence ○ Sort ○ Range
值得注意的是,對地理位置索引只會進行分析,但是不會提出改進建議。
第三步:推薦合適的索引
通過上面兩步,我們能夠對一個查詢可能使用索引的情況有一個了解。Dex會生成一個此查詢的最佳索引。如果這個索引不存在,并且查詢情況不包括上面提到的UNSUPPORTED,那么Dex就會做出相應的索引優化建議。
Dex未來還會推出很多新功能,比如使用system.profile日志來進行推薦,支持地理索引等等。詳情可見其項目主頁。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。
文章名稱:Dex–MongoDB索引優化工具怎么使用以及原理有哪些
網址分享:http://m.newbst.com/article32/iigdpc.html
成都網站建設公司_創新互聯,為您提供云服務器、企業建站、標簽優化、面包屑導航、建站公司、微信公眾號
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯