第三部分 效能

2022-03-12 08:40:05 字數 1629 閱讀 2783

索引管理

效能優化

效能監控

db.c1.find().explain(); //查詢的詳細資訊列出來

db.c1.getindexkyes(); //所有索引的字段

db.c1.getindexes(); //所有索引的相關資訊

2 唯一索引

只需要在ensureindex命令中提定"uniqure:true"即可建立唯一索引,

如果表中有二條一樣的資料,那麼建立不了唯一索引

這個唯一索引沒弄成功????????????

媽的,試了兩次還是不行,真不知道是好裡不對,按例子來的也不對

3 檢視索引

檢視索引使用命令getindexes()

上例顯示出來的一共有二個索引,其中_id是建立表的時候自動建立的索引,此索引是不能夠了刪除的

4 刪除索引

dropindex();

db.c3.dropindex(); //刪除所有索引

db.c3.dropindex(); //刪除指定索引

效能優化

explain執行計畫

mongodb提供了乙個explain命令讓我們獲知系統如何處理查詢請求,利用explain命令我們可以很好地觀察系統如何使用索引來加快檢索,同時可以針對性優化索引

優化器profile

mongodb database profiler是一種查詢日誌功能,可以作為我們優化資料庫的依據

開始profiling功能

有兩種方式可以控制profiling的開關和級別

啟動mongodb時加上-profile=級別即可

在客戶端呼叫db.setprofilinglevel(級別)命令來實時配置

profiler資訊儲存在system.profile中,我們可以通過db.getprofilinglevel()命令來獲取當前的profile級別

具體操作

db.setprofilinglevel(2);

上面的profile的級別可以取0 1 2 三個值,它們的表示

0 不開啟

1 記錄慢命令

2 記錄所有命令

profile在級別1時會記錄慢命令,上面預設值為100ms,在預設就有設定,其設定方法和級另有兩種方法:

一種是通新增--slowms啟動引數配置,

db.setprofilinglevel時加上第二個引數

db.setprofilinglevel(1,10);

那麼這個慢的定義是什麼

可以理解比較耗時的命令

如果乙個查詢耗時10毫秒,就會被記錄下來

優化方案1: 建立索引

在查詢條件的字段上,或者排序條件的字段上建立索引,可以顯著提高執行效率

db.posts.ensureindex();

方案2: 限定返順結果條數

使用limit()限定返回結果集的大小,可以減少database server的資源消耗,可以減少網路傳輸資料量

db.posts.find().sort().limit(10);

方案3: 查詢使用的字段,不查詢所有字段

db.posts.find({},).sort().limit(10);

效能監控

通過對資料庫的效能監控,能夠更好的了解資料庫的工作狀態,從而進行優化

劇本第三部分

第三部分劇本 場景一 女生宿舍,a趴在桌子上睡覺,電腦螢幕亮著,是vs 但是就寫了一行 小碼趴在a的胳膊上睡著。突然,a醒了,發現自己上課要遲到了,a 哎呀,完了完了,大中午的怎麼趴在這睡著了 邊說話邊收拾書包 轉頭看向小碼 a 把你放哪呢 說話的時候四周環視 算了,跟我去吧,我先把你放書包裡 說話...

sqlalchemy第三部分

1.復用。在我們用sqlalchemy運算元據庫時,有部分 可以重複使用,我們將這部分放到乙個模組中,後面使用就可以呼叫這個模組,匯入裡面的方法。python 1.連線資料庫 from sqlalchemy import create engine hostname 127.0.0.1 ip位址 p...

Linux筆記第三部分

最近開學什麼的事比較多,然後今天開始學校安排了培訓,全日制,早上9點到晚上7點,遭不住,不過培訓的機器用的ubantu,頓時覺得自己會玩的 捂臉 linux 13linux使用者基礎 1.使用者 用來限制使用者或程序可以使用的資源 組 用來方便組織管理使用者 2.每個使用者 組 都會有乙個useri...