c# - SQL Server 与 MongoDB : Speed test?

标签 c# sql-server linq performance mongodb

MongoDB:

var x = nosql.GetRecords<Event>(p => p._Data == "rawhix", 0, 12222);
// ICursor<T> GetRecords<T>(expression, skip, limit);

SQL:

SqlDataReader dr = SqlHelper.ExecuteReader("Select Top(12222)* From NewsFeed WHERE _Data = 'dddd'");

MongoDB 包含 1000000 条记录,这在 SQL 中是相同的。
数据存储如下:

Id = 1 , _Data = 1abc
Id = 2 , _Data = 2bc 
... etc

事件类:

Class Event => int Id => string _Data 

当我运行代码时,结果是:
蒙戈:580 毫秒
SQL:102 毫秒

我应该做些什么来解决这个问题!!因为除了这个测试之外,mongo 总是更快!?!

最佳答案

你需要一个索引。在 mongo 控制台中运行:

db.Events.ensureIndex({_Data:1});

或者您可以通过 C# 驱动程序调用它:

MongoDatabase db = server.GetDatabase("your_db_name");
MongoCollection<Event> events = hr.GetCollection<Event>("events");
employees.EnsureIndex("_Data");

您不希望在每次调用时都执行此操作,因为这是对数据库的另一次调用并且对性能的影响非常小。

关于c# - SQL Server 与 MongoDB : Speed test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4781325/

相关文章:

c# - 使用 AES 加密任何文件

sql - EXEC master.. 做什么?

c# - 使用分组在列表上创建字典

c# - 整数包含使用 Linq

javascript - linq.js 按 javascript 中的对象数组分组

c# - C# 中的插件模式

c# - Windows 8 应用程序 WebView 捕获事件目标 ="_blank"

c# - 如何在 Xamarin.Forms 中重用父 ContentView 中定义的样式

sql - 极长的 "Not In"请求

sql-server - 稀疏 Varchar(最大值)