前天遇到了一個高手,給我講了一下高併發的時候需要注意的一些問題,在此先列出來,後面再慢慢完善。
1.數據庫設計
1.1表結構
很重要的一個,將常用表和非常用表分開,因爲常用表的數據經常用於共享,如果全部共享那就造成數據冗餘,降低效率;另外一個,表結構好,查詢速度,數據的處理都會快很多;
1.2 善用索引,觸發器,存儲過程,事務,高效率sql語句等等
2.分佈式,服務器負載均衡
具體實現可以Google方案。
3.數據庫集羣
Oracle、Sybase等都有很好的方案,常用的MySQL提供的Master/Slave也是類似的方案,您使用了什麼樣的DB,就參考相應的解決方案
4.數據庫表散列
http://blog.csdn.net/xiechao240/article/details/5863691
5.session共享
以memcache爲內存管理系統來設計的高可用,高負載,高性能的中央存儲區之session共享。
http://blog.csdn.net/kongdeqian1988/article/details/38434457
6.緩存
html靜態頁面緩存,數據庫緩存,服務器緩存等等
7.圖片服務器分離
圖片是最消耗資源的,於是我們有必要將圖片與頁面進行分離,這是基本上大型網站都會採用的策略,他們都有獨立的、甚至很多臺的圖片服務器
總結:所用的方法主要都是爲了
1.少用內存;
2.降低cpu佔有率;
3.降低操作io的頻繁性:文件io,網絡io,數據io。