public IQueryable<T> GetRecords<T>(System.Linq.Expressions.Expression<Func<T, bool>> expression, int from, int first) where T : class, new()
{
first = first == 0 ? 30 : first;
return _db.GetCollection<T>(collectionName).Linq().Where(expression).Skip(from).Take(first);
}
var x = GetRecords<Event>(p => true, 0, 12222);
string eventJson = new JavaScriptSerializer().Serialize(x);
この関数はmongoDBからデータを取得します。mongoDBはSQLと同じようにクエリを実行します!
SqlDataReader dr = SqlHelper.ExecuteReader("Select Top(12222)* From NewsFeed");
string eventJson = new JavaScriptSerializer().Serialize(dr);
これはSQL Serverからです。
それぞれの実行時間を測定しようとしましたが、結果は次のとおりです。
Mongo:172ms
SQL:185ms。
私はmongoDBがSQLよりもはるかに高速でなければならないことを知っています。
あなたは正確にそれが速くなければならないと思いますか? –
なぜ私はmongoがSQLより速くなければならないと思うのですか? – Rawhi
また、オーバーヘッドの多くはおそらくデータレイヤーにないことを認識しておく必要があります。おそらく、データの反復と非直列化によるものです。 MongoDB >> SQLがすべてのユースケースで常にそうであるとは限りません。 –