網(wǎng)站訪問(wèn)量大+數(shù)據(jù)量大=>看似簡(jiǎn)單的SQL語(yǔ)句也會(huì)搞掛系統(tǒng)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
一個(gè)簡(jiǎn)單的SQL語(yǔ)句:select count(1) from tableName with(nolock) where columnA=A and columnB=B and columnC=C,被一個(gè)關(guān)鍵頁(yè)面調(diào)用,雖然加了Memcache緩存,但由于數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)問(wèn)題,造成了數(shù)據(jù)庫(kù)服務(wù)器CPU負(fù)載高達(dá)100%,關(guān)鍵頁(yè)面響應(yīng)超時(shí),造成極其不好的影響。 究其原因,缺少索引,數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)之初,沒(méi)有為該表建立索引,而后又忽略了該表僅測(cè)試數(shù)據(jù)就達(dá)到五六百萬(wàn)級(jí)別,以每天25萬(wàn)左右的速度增長(zhǎng)。測(cè)試時(shí),由于沒(méi)有訪問(wèn)量,性能問(wèn)題沒(méi)被發(fā)現(xiàn);而上線前的壓力測(cè)試,由于測(cè)試帳號(hào)只有有限的幾個(gè),而系統(tǒng)根據(jù)帳號(hào)增加了Memcache緩存,因此該問(wèn)題又被忽略了;直到系統(tǒng)上線第二天,真實(shí)的用戶訪問(wèn)量上來(lái)了,該問(wèn)題才暴露無(wú)遺,客服電話很快被打爆。 為了徹底解決該問(wèn)題,花費(fèi)了幾個(gè)工作日,血淋淋的教訓(xùn)。如果開(kāi)發(fā)之前設(shè)計(jì)好數(shù)據(jù)結(jié)構(gòu)建好索引、如果開(kāi)發(fā)測(cè)試的時(shí)候關(guān)注下數(shù)據(jù)量、如果把寫(xiě)好的SQL語(yǔ)句放到查詢分析器分析下性能...做設(shè)計(jì)寫(xiě)程序,意識(shí)不能少,開(kāi)發(fā)前的設(shè)計(jì)要做到位,開(kāi)發(fā)流程要把握好,否則發(fā)生杯具只能自己埋單了。 本文來(lái)自:Web技術(shù)之家(www.waweb.cn) 詳細(xì)出處參考:http://www.waweb.cn/article/60440.htm
該文章在 2011/1/17 12:26:32 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |