通过这样一个方法插入10W条数据:
public void InsertBigData()
{
var random = new Random();
for (int i = 1; i < 100000; i++)
{
Document doc = new Document();
doc["ID"] = i;
doc["Data"] = "data" + random.Next(100000);
mongoCollection.Save(doc);
}
Console.WriteLine("当前有" + mongoCollection.FindAll().Documents.Count() + "条数据");
}
然后,实现一个方法用来创建索引:
public void CreateIndexForData()
{
mongoCollection.Metadata.CreateIndex(new Document { { "Data", 1 } }, false);
}
还有排序的方法:
public void SortForData()
{
mongoCollection.FindAll().Sort(new Document { { "Data", 1 } });
}
运行测试代码如下:
static void Main(string[] args)
{ www.2cto.com
IndexBLL indexBll = new IndexBLL();
indexBll.DropAllIndex();
indexBll.DeleteAll();
indexBll.InsertBigData();
Stopwatch watch1 = new Stopwatch();
watch1.Start();
for (int i = 0; i < 1; i++) indexBll.SortForData();
Console.WriteLine("无索引排序执行时间:" + watch1.Elapsed);
www.2cto.com
indexBll.CreateIndexForData();
Stopwatch watch2 = new Stopwatch();
watch2.Start(); www.2cto.com
for (int i = 0; i < 1; i++) indexBll.SortForData();
Console.WriteLine("有索引排序执行时间:" + watch2.Elapsed);
}
最后执行程序查看结果:
多次测试表明在有索引的情况下,查询效率要高于无索引的效率。
本文出自 http://www.cnblogs.com/lipan/