MySQL使用方案
來(lái)源:程序員人生 發(fā)布時(shí)間:2015-04-17 08:32:49 閱讀次數(shù):3690次
優(yōu)化時(shí)機(jī)
1般單表超過(guò)500萬(wàn)左右,或明顯感覺(jué)到性能降落時(shí),需要優(yōu)化
優(yōu)化方案
- 讀寫(xiě)分離
- 使用緩存,如memcached或Redis
- 使用搜索引擎,如ElasticSearch或solr
- 分庫(kù)分表
詳細(xì)說(shuō)明
- 讀寫(xiě)分離很容易實(shí)現(xiàn),建議在1開(kāi)始做,沒(méi)必要等到性能降落時(shí)
- 發(fā)現(xiàn)性能降落時(shí)可做。比如有1張500萬(wàn)大表,不可能緩存全表,只能緩存熱門(mén)數(shù)據(jù),所以需要有1個(gè)監(jiān)控?zé)衢T(mén)數(shù)據(jù)的功能
- 像緩存全部大表或數(shù)據(jù)量很大可以用搜索引擎,搜索引擎是文件存儲(chǔ),合適高效查找,但不對(duì)插入修改、事務(wù)等支持。使用搜索引擎的話需要定時(shí)把mysql的數(shù)據(jù)同步給它,一樣的數(shù)據(jù)需要預(yù)留2倍磁盤(pán),雖然搜索引擎可能可以緊縮
- 分庫(kù)分表其實(shí)可以在第2步做,但實(shí)現(xiàn)較復(fù)雜;分表后必定觸及要讀取多個(gè)表的問(wèn)題,但對(duì)開(kāi)發(fā)是透明的,在利用開(kāi)發(fā)與數(shù)據(jù)庫(kù)中間需要研發(fā)1個(gè)平臺(tái),自動(dòng)hash索引到分表后的表。舉個(gè)例子,假定有1張600萬(wàn)的表,可以分為兩張表,按時(shí)間分,時(shí)間點(diǎn)A之前的分1張,500萬(wàn);另外一張表100萬(wàn),后續(xù)的都插入到該表
現(xiàn)狀:數(shù)據(jù)庫(kù)現(xiàn)在用5.5版本,免費(fèi)的,不購(gòu)買(mǎi)服務(wù),使用了上面的2和3,暫時(shí)沒(méi)遇到甚么困難。不需要dba,1般困難研發(fā)可以弄定。
以上方案針對(duì)的是最大表是1000萬(wàn)數(shù)據(jù)量的表。超過(guò)1000萬(wàn)未經(jīng)實(shí)踐。(感謝老郭提供技術(shù)支持)
ouyida3的csdn blog
2015.4.8
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)