mongoDB像SQL一样运行查询!

Raw*_*hi 2 c# linq performance mongodb

    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);
Run Code Online (Sandbox Code Playgroud)

这个函数从mongoDB获取数据.

    SqlDataReader dr = SqlHelper.ExecuteReader("Select Top(12222)* From NewsFeed");
    string eventJson = new JavaScriptSerializer().Serialize(dr);
Run Code Online (Sandbox Code Playgroud)

这来自SQL Server.

我试图测量每个人的执行时间,结果是:
Mongo:172ms
SQL:185ms.
但是我知道mongoDB应该比SQL快得多,对吧!?!

Chr*_*fer 7

MongoDB不一定像这样简单的查询中表现出色的SQL服务器; 当您拥有辅助数据时,速度优势就会出现.我不知道您的域名是什么样的,但一个常见的例子是博客.在SQL数据库中,您将拥有一个posts表,一个comments表,一个authors表等.用于检索单个博客帖子显示所需的所有数据的查询将包括一些联接或多个查询(这两种方式都会影响性能有点).在NoSQL数据库中,可能只有一个表Posts.一个没有连接的查询将撤回所有必需的数据.

这是一篇很好的博客文章,讨论NoSQL类型存储和关系存储之间的不同方法.

  • 我真的不确定你在这里问我什么; 除非您在优化/缓存和非常好的硬件情况上花费了大量精力,否则一百万用户同时重新加载页面可能会因SQL或MongoDB而失败. (5认同)