天天看點

二、mongodb索引

mongo --port 27017  --username=admin --password=admin --authenticationDatabase=admin #登陸mongodb

use qingchen #庫不存在就建立并切換,庫存在則直接切換

插入50萬條資料到qingchen庫的myuser表

for(i=0;i<500000;i++){

  db.myuser.insert({name:'mytest'+i,age:i})

}

mongodb有慢查詢的概念,預設是超過100ms會記錄慢日志

db.getProfilingStatus()

二、mongodb索引

查詢age:9999

二、mongodb索引

可以在mongodb日志中看到查詢時間

二、mongodb索引

也可以用戶端使用指令進行檢視

db.myuser.find( {age:9999} ).explain(true)

二、mongodb索引

檢視myuser表的索引,預設對_id建立了索引

二、mongodb索引

給age建立索引

db.myuser.ensureIndex( {age:1} ) #如果為-1則是降序索引

二、mongodb索引
二、mongodb索引

再次執行

db.myuser.find({age:9999})

二、mongodb索引

删除索引

db.myuser.dropIndex( {age:1} )

如果使用正則查詢,即使建立了索引也是慢

mongodb也可以建立唯一索引

db.myuser.remove({}) #清空myuser表

db.myuser.ensureIndex( {userid:1},{unique:true} ) #建立唯一索引

唯一索引資料重複就會報錯插不進去

二、mongodb索引