又拍網學習總結

來源:互聯網
上載者:User

1、 
比較耗時的操作不宜採用php,而是應該採用python才進行操作:例如發送郵件、建立索引、資料彙總和好友推送;

2、 
使用訊息佇列RabbitMQ;

3、 
分褲設計(拆分方式,垂直分割和水平分割):

a)        
水平分割,拆分演算法,建立統一的索引,即建立索引表,儲存使用者ID和對應的資料庫表;每次對使用者ID進行操作的時候,首先從索引表中擷取對應的資料庫表ID。採用這種的壞處在於每次對使用者資料進行操作的時候,都需要從資料庫中select資料,增加資料的讀壓力,可以嘗試在mysql前面添加memcache,來緩衝使用者的查詢資訊,因為使用者ID索引對應的資料庫表ID是恒久不變的,所以將資訊放到memcache中,資料的命中率應該是相當高的。所以很大程度上減少了效能損失。

b)       
帶來的問題

                       
i.             
要查詢好友的資料,但是不能保證所有好友的資料都放置在一個資料表中,所以進行多次查詢,然後再進行彙總操作。

c)        
保證資料ID是唯一的

由於將資料在分開放置在不同的是資料表中,所以採用auto_increament的方式,因為不能保證不同資料庫表中的自增長。可以採用的方式是:建立一個空表建立一個唯一的索引,每次插入資料時都向這個表中插入資料,然後擷取ID,從而可以獲得一個全域唯一的ID,而且要定期清空這個表中的資料,來保證資料庫插入的效率比較高;

4、 
資料庫部署

使用兩台資料庫來做master,當然master 之後也有 slave,兩台master之間是配置成相互複製的。雖然是Master-Master部署方式,但是同一時間我們還是只能使用其中的一個,原因是複製的延遲的。所以在訪問資料時,仍然是採用對應的使用者ID訪問對應的資料庫。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.