我需要运行以下查询并尽可能接近毫秒获取结果。以下查询返回200,000条记录(每列4列,值为5位)。
在RoboMongo上尝试了以下查询:
db.MarketData.find(
{
$or: [ { Symbol: "X" }, { Symbol: "Y" }, { Symbol: "Z" },{ Symbol: "A" }]
}
).sort({ColumnB:-1});
在Robomongo上执行查询时间为0.001秒。看起来一次只能获得少量结果。但是当我在C#上运行查询时,它需要接近3秒。一切都在一台机器上运行,因此可能没有网络影响等。有什么办法可以让响应时间进一步降低吗?例如。任何缓冲设置等或你能想到的任何东西?
C#代码:
public static async void ProcessDataAsync()
{
Console.WriteLine(DateTime.Now.TimeOfDay);
var collection = _database.GetCollection<BsonDocument>("MarketData");
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("Symbol", "X") | builder.Eq("Symbol", "Y") | builder.Eq("Symbol", "Z") | builder.Eq("Symbol", "A");
var sort = Builders<BsonDocument>.Sort.Descending("ColumnB");
var task = collection.Find(filter).Sort(sort).ToListAsync();
var x = await task;
Console.WriteLine(DateTime.Now.TimeOfDay);
}