索引
如果查询的文档记录非常多,查询速度会很慢,和关系型数据库一样,MongoDB中也可以为经常需要查询的字段建立索引,在MongoDB中使用的索引数据结构是B树,使用注意点和MySQL都差不多,_id字段也默认具有唯一索引。当然,建立索引则会让插入和更新效率变低,因为修改数据时需要同时维护索引。总的来说,MongoDB索引的使用规则基本可以套用RDBMS。
这里我们向MongoDB中插入一百万条数据用作测试。
for (i=0; i<1000000; i++) {
db.users.insert(
{
"i" : i,
"username" : "user"+i,
"age" : Math.floor(Math.random()*120),
"created" : new Date()
}
);
};
不建立索引时,使用查询db.users.find({"username": "user101"}),可以明显感觉到查询速度是比较慢的。
注:我们可以使用explain()函数查看详细的查询计划。
建立索引
下面我们为username字段建立索引,createIndex中指定建立索引的字段,1代表升序索引。
db.users.createIndex({"username": 1})
再次查询,我们能够明显感觉到结果返回的非常快。
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。