索引管理
效能優化
效能監控
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...