簡單的優化處理 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秒不到,但是經過網絡去訪問的時候,加載的時間至關長~這個何解,有什麼方法呢微信

相關文章
相關標籤/搜索