简单的优化处理 By LINQ TO SQL

最近在作关于新浪微博受权的一些minisite,数据库并不复杂,因此在数据打交道这块采用了linqtosql,开发起来更快更简单。。。可是随着用户访问逐渐增多,用户上传的图片也愈来愈多,由于首页是一个显示图片墙的效果,客户抱怨loading时间太长,跳出率比较高。so 除了前端要作一些优化以外,后台返回的接口也有必定必要的查询优化。好了,见代码。前端

这是以前写的(菜鸟都是这样作,无鄙视菜鸟之意,我以前就是这么写) sql

List<tbl_WeChat> list = (from wc in lcdb.tbl_WeChat
                         select wc).OrderByDescending(o => o.SendTime).ToList();

                foreach (var item in list)
                {
                    WallByWX wx = new WallByWX
                    {
                        Id = item.ID,
                        AudioUrl = string.IsNullOrEmpty(item.ServerAudioUrl) ? item.AudioUrl : item.ServerAudioUrl,
                        ImgUrl = item.ServerImgUrl,
                        ScreenName = item.ScreenName,
                        LinkCode = item.Code,
                        Zan = item.ZanCount.HasValue ? item.ZanCount.Value : 0,
                        IsFirst = item.IsFirst.HasValue ? item.IsFirst.Value : false
                    };
                    walls.Add(wx);
                }

由于有微信和新浪2个用户来源,全部有2个类型的查询。数据库

改进以后的写法服务器

walls = (from wc in lcdb.tbl_WeChat
                         select wc).OrderByDescending(o => o.SendTime).Select<tbl_WeChat, WallByWX>(e => new WallByWX()
                         {
                             Id = e.ID,
                             AudioUrl = string.IsNullOrEmpty(e.ServerAudioUrl) ? e.AudioUrl : e.ServerAudioUrl,
                             ImgUrl = e.ServerImgUrl,
                             ScreenName = e.ScreenName,
                             LinkCode = e.Code,
                             Zan = e.ZanCount.HasValue ? e.ZanCount.Value : 0,
                             IsFirst = e.IsFirst.HasValue ? e.IsFirst.Value : false
                         }).ToList();

另外还有一个疑问,查询出来的数据在服务器上响应1秒不到,但是经过网络去访问的时候,加载的时间至关长~这个何解,有什么方法呢微信

相关文章
相关标签/搜索