网站高可用方案
前端:vanish squid等代理緩存
? ? ?動態(tài)數(shù)據(jù)緩存:對于不是經(jīng)常變化的用memcached 如果跟微博差不多的場景可以用redis
數(shù)據(jù)庫:
為了備份和恢復(fù):可以用主從 對于主-》從-》從 有個參數(shù)log_slave_update參數(shù)決定后面兩個從是否寫日志
一主多從也可以作為讀寫分離:
1)innodb引擎插入性能好,myisam查詢性能好 ,在做讀寫分離時可利用下
2)數(shù)據(jù)庫的設(shè)計和業(yè)務(wù)索引建立,對于大數(shù)據(jù)量也很重要
在此:個人簡單表述下:
=》對于innodb引擎表是b+索引,索引有三大特征:索引高度低(在500億數(shù)據(jù)中查詢 id=xxx時差距不大) ?索引有序(可以讓group by union等操作避免排序==》排序?qū)?nèi)存和cpu消耗很大,應(yīng)該盡量避免) 索引存儲列值 (如果只需要返回索引字段,可以避免回表操作,如果只需返回少量數(shù)據(jù),有索引和沒有索引差距也大,但是返回數(shù)據(jù)量大時,優(yōu)化器會選擇全表掃描=》也可以用force強(qiáng)制走索引,但是意義不大)
==》對于b+索引:在count(*) ?sum ?avg等聚合函數(shù) max ?min group by等都起到很好效果,在大數(shù)據(jù)量下
===》位圖索引:更新少的字段 比如性別
====》函數(shù)索引 ?upper會消除索引,需要建函數(shù)索引 等等
對于服務(wù)器集群:lvs ha+keepalived 在中大型網(wǎng)站 也可以用
圖片,大文件:文件分布式系統(tǒng)(hadoop)?
對于大數(shù)據(jù)量的session問題:基于memcache的session共享
在對于數(shù)據(jù)不能丟失的場景:可以用程序雙寫(innodb引擎的事務(wù) 也會丟失少量數(shù)據(jù)還有mysql主從復(fù)制也會)
在***系統(tǒng) 和電商系統(tǒng)中數(shù)據(jù)庫的設(shè)計 側(cè)重點(diǎn)不同 也會造成很大影響
這里簡單分享一個小技巧:在***系統(tǒng)月初(記得不怎么清楚,但是只是為說明一個場景) 要統(tǒng)計話費(fèi)訂單時,由于插入數(shù)據(jù)過大,索引開銷大,導(dǎo)致服務(wù)器很慢,這種時候可以讓索引失效,速度會提升幾百倍,完后再重建索引。
未完待續(xù)。
轉(zhuǎn)載于:https://blog.51cto.com/2853725/1423153
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: Awesome Tools Site
- 下一篇: Unity Hub安装Android B