1. 程式人生 > >mongodb基礎-索引

mongodb基礎-索引

1.索引介紹

mongodb的索引和我們遇到的rdbms的索引含義一樣,原理也基本一樣 首先我們先在一個沒有索引的集合上做一個查詢,具體的查詢計劃可以通過explain()函式獲取:
> db.t1.find({"username":"user101"}).explain(){"queryPlanner":{"plannerVersion":1,"namespace":"suq.t1","indexFilterSet":false,"parsedQuery":{"username":{"$eq":"user101"}},"winningPlan":{"stage":
"COLLSCAN",
"filter":{"username":{"$eq":"user101"}},"direction":"forward"},"rejectedPlans":[]},"serverInfo":{"host":"mongodb1","port":27017,"version":"3.2.6","gitVersion":"05552b562c7a0b3143a729aaa0838e558dc49b25"},"ok":1}
如果要看詳細的執行計劃可以在explain新增executionStats或者allPlansExecution
> db.t1.find({"username"
:"user101"}).explain("allPlansExecution")
{"queryPlanner":{"plannerVersion":1,"namespace":"suq.t1","indexFilterSet":false,"parsedQuery":{"username":{"$eq":"user101"}},"winningPlan":{"stage":"FETCH","inputStage":{"stage":"IXSCAN","keyPattern":{"username":1},"indexName":"username_1","isMultiKey":false,"isUnique"
:false,
"isSparse":false,"isPartial":false,"indexVersion":1,"direction":"forward","indexBounds":{"username":["[\"user101\", \"user101\"]"]}}},"rejectedPlans":[]},"executionStats":{"executionSuccess":true,"nReturned":1,"executionTimeMillis":0,"totalKeysExamined":1,"totalDocsExamined":1,"executionStages":{"stage":"FETCH","nReturned":1,"executionTimeMillisEstimate":0,"works":2,"advanced":1,"needTime":0,"needYield":0,"saveState":0,"restoreState":0,"isEOF":1,"invalidates":0,"docsExamined":1,"alreadyHasObj":0,"inputStage":{"stage":"IXSCAN","nReturned":1,"executionTimeMillisEstimate":0,"works":2,"advanced":1,"needTime":0,"needYield":0,"saveState":0,"restoreState":0,"isEOF":1,"invalidates":0,"keyPattern":{"username":1},"indexName":"username_1","isMultiKey":false,"isUnique":false,"isSparse":false,"isPartial":false,"indexVersion":1,"direction":"forward","indexBounds":{"username":["[\"user101\", \"user101\"]"]},"keysExamined":1,"dupsTested":0,"dupsDropped":0,"seenInvalidated":0}},"allPlansExecution":[]},"serverInfo":{"host":"mongodb1","port":27017,"version":"3.2.6","gitVersion":"05552b562c7a0b3143a729aaa0838e558dc49b25"},"ok":1}
這裡的執行計劃是collscan表示集合掃描,我們給檔案username建立一個索引,使用db.collectionname.ensureIndex({"colname":[1/-1]})來建立   --新版本中使用createIndex來替換ensureIndex 其中1表示列的排序是從小大到排序,-1表示從大到小排序.
> db.t1.ensureIndex({"username":1})

相關推薦

mongodb基礎-索引

1.索引介紹 mongodb的索引和我們遇到的rdbms的索引含義一樣,原理也基本一樣 首先我們先在一個沒有索引的集合上做一個查詢,具體的查詢計劃可以通過explain()函式獲取: > db.t1.find({"username":"us

MongoDB基礎教程系列--第六篇 MongoDB 索引

https://www.cnblogs.com/liruihuan/p/6682575.html 使用索引可以大大提高文件的查詢效率。如果沒有索引,會遍歷集合中所有文件,才能找到匹配查詢語句的文件。這樣遍歷集合中整個文件的方式是非常耗時的,特別是處理大資料時,耗時幾十秒甚至幾分鐘都是有可能的。

MongoDB 建立基礎索引、組合索引、唯一索引以及優化

一、索引 MongoDB 提供了多樣性的索引支援,索引資訊被儲存在system.indexes 中,且預設總是為_id建立索引,它的索引使用基本和MySQL 等關係型資料庫一樣。其實可以這樣說說,索引是凌駕於資料儲存系統之上的另一層系統,所以各種結構迥異的儲存

MongoDB 創建基礎索引、組合索引、唯一索引以及優化

表示 mil cap 監控工具 actor lai slow time _id 一、索引 MongoDB 提供了多樣性的索引支持,索引信息被保存在system.indexes 中,且默認總是為_id創建索引,它的索引使用基本和MySQL 等關系型數據庫一樣。其實可以這樣說說

Mongodb基礎入門(3)——排序和索引

今天繼續Mongodb,簡單的記錄下其排序和索引的使用。 在Mongodb中使用sort()方法對資料進行排序。 命令格式:db.collectionName.find().sort({key:引數

MongoDB 基礎(三)mongodb 中的索引使用

MongoDB中的索引和其他資料庫索引類似,也是使用B-Tree結構。MongoDB的索引是在collection級別上的,並且支援在任何列或者集合內的文件的子列中建立索引。 下面是官方給出的一個使用索引查詢和排序的一個結構圖。 所有的MongoDB集合預設都有一個唯

mongodb(2) -索引創建

lsp log find html 對象 uniq code style unique 在shell中查看集合中已經存在的索引,你可以運行: db.things.getIndexes() 要查看數據庫中所有的索引,可以運行: db.system.indexes.

MongoDB基礎知識(一)

解決方案 互聯網 我們很好 數據庫 基礎知識 互聯網行業的發展非常的迅速,數據存儲以及架構優化方面也有很多不同的解決方案,例如關系型數據庫、非關系型數據庫、數據倉庫技術等。更多數據庫類產品的出現,為我們很好的解決了數據存儲的問題,例如Redis緩存,MySQL關系型數據庫,MongoDB

Mongodb基礎實踐(二)

數據庫查詢 表達式 where 技術 文章 在前面的文章裏面主要介紹了MongoDB的文檔,集合,數據庫等操作和對文檔的增、刪、改相關知識,接下來會總結一點有關查詢的相關知識。 在MySQL中,我們知道數據查詢是優化的主要內容,讀寫分離等技術都是可以用來處理數據庫查詢優化的,足以見數

MongoDB索引

什麽 語法 dia 毫秒 cti 需要 大數據量 mce ges   一、索引的概念   相信大家對索引都不陌生,數據庫的索引類似書籍的目錄索引一樣,有了索引,看書的時候就不用翻遍整本書,就可以根據目錄頁數直接跳轉到目標內容,提高閱讀和查詢效率。數據庫的索引也是如此,它的作

Mongo基礎 索引的使用

exsi 定義 class 空間索引 毫秒 ext rop clas 應用 MongoDB中的索引和其他數據庫索引類似,也是使用B-Tree結構。mongodb的索引是在collection級別上的,並且支持在任何列或者集合內的文檔的子列中創建索引。 所有的Mong

mongodb權威指南之mongodb基礎知識學習記錄

pre lec fin 基礎知識 pda log editor 批量 l數據庫 mongo show dbs查看所有的數據庫 使用use可以切換數據庫,如果沒有數據庫則創建一個新的 use local切換倒local數據庫 增加數據 db.test.insert({name

mongodb基礎環境部署(windows系統下)

無法連接 lin rect 技術分享 麻煩 基本 dir 小結 www 前言:由於項目組需要進行大數據管理分析系統的開發,同時又希望所用的到相關軟件和庫均為開源,因此項選擇使用mongodb這一非關系型,結構組織較為靈活的開源數據庫。同時之所以寫該文檔,主要是認為網上太多

mongodb 基礎

-s .so logs 文檔 fine 命令 http htm object MongoDB: jar包 下載地址: https://oss.sonatype.org/content/repositories/releases/org/mongodb/ mongod

MongoDB基礎

mongodb nosql 文檔 一、概述1.1 MongoDB概念MongoDB 是由C++語言編寫的,是一個基於分布式文件存儲的開源數據庫系統。在高負載的情況下,添加更多的節點,可以保證服務器性能。MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB 將數據存儲為

MongoDB基礎學習

客戶 永遠 ons art 數據庫服務 它的 意義 自動生成 物理 一 簡介 MongoDB是一款強大、靈活、且易於擴展的通用型數據庫1、易用性 MongoDB是一個面向文檔(document-oriented)的數據庫,而不是關系型數據庫。

MongoDB 覆蓋索引查詢

無需 出現 min 通過 提取數據 mongo 條件 官方 dex 官方的MongoDB的文檔中說明,覆蓋查詢是以下的查詢: 所有的查詢字段是索引的一部分 所有的查詢返回字段在同一個索引中 由於所有出現在查詢中的字段是索引的一部分, MongoDB 無需在整個數據文檔中

我的MongoDB-基礎筆記

MongoDB 基礎知識總結 mongoDB 知識點小結1.ObjectId 12位 4時間戳+3機器識別嗎+2進程id+3個隨機數 getTimestamp() str()2.Map Reduce 將大批量的工作分解執行,然後將結果合並成最終的結果。3.MongoDB全文檢索創建索引:db.p

MongoDB基礎知識

jaNoSQL是什麽? 非關系型數據庫,有時也稱作Not Only SQL的縮寫,是對不同於傳統的關系型數據庫的數據庫管理系統的統稱 NoSQL的優勢 1、高擴展性 2、高並發性,大數據下讀寫能力較強 3、分布式計算 4、處理海量數據 5、沒有復雜的關系NoSQL數

MongoDB基礎命令雜記

MongoDB 安裝 基礎命令一、MongoDB安裝使用 1、安裝啟動MongoDB 1.1 下載安裝 官網: https://www.mongodb.com/ rpm下載地址: http://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/ [ro