Asp.Net 應用百萬級最佳化方法-資料庫最佳化(1/3)

來源:互聯網
上載者:User

Asp.Net 網站最佳化教程系列之資料庫教程最佳化措施 使用主從庫(全)
 以豆瓣讀書書的詳細頁為假定情境,你可以點擊這裡看下頁面的結構(我不是豆瓣的技術,在這裡只是拿這個頁面舉例)
我們來分析呈現這個頁面需要的資料和這些資料的實效性要求
1) 書的詳細資料 時效性要求:要求及時
2) 豆瓣成員的常用標籤 實效性:不需要很及時
3) 喜歡讀這本書的人也喜歡讀的書 屬於分析資料,不需要很及時
4) 最新書評 要求及時
5) 讀這本書的幾個使用者 及時性不高
6) 喜歡這本書的人常去的小組 屬於分析資料不需要很及時
從上面的分析可以看出只有1),4)兩項資料需要從主庫讀,而2),3),5),6)為非及時資料從從庫讀取即可。當然我們可以對這些實效性不高的資料做緩衝處理。

2. 以論壇貼文清單頁面為假定情境,玩論壇的人都喜歡頂貼,把自己的文章頂到第一頁讓更多的人關注,而對於50頁之後的文章則反讀的人很少;我們可以根據這個商務邏輯特徵來決定在使用者訪問前50頁貼文清單資料時從主庫讀,而當使用者訪問超過50頁之後的資料時則從從庫進行查詢。

3. 以訂單為例,通常超過三個月的訂單就不會再有變化了,假定我們把訂單號設計為日期格式時,根據訂單號去查詢訂單時就可以根據訂單號來決定該訪問主庫還是從庫。

舉了幾個適用的情境,我們以第三個情境為例,寫一段簡單的示意代碼看下


複製代碼 代碼如下:
//orderNo 的格式為 20100528120105000001 即yyyyMMddHHmmss + 序號
public OrderInfo GetOrder(string orderNo) {
string connString = ConnStringGetter.GetForOrder(orderNo);
using (SqlConnection conn = new SqlConnection(connString))
{
...
}

首頁 1 2 3 末頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.