過一段時(shí)間,學(xué)一些技術(shù),有一些進(jìn)步,就把網(wǎng)站程序修改一翻。
這次修改網(wǎng)站,工程是比較大的,因?yàn)榘押芏鄶?shù)據(jù)結(jié)構(gòu)重新改了,一些數(shù)據(jù)表都添加新的字段,類的方法大都重新寫過。也改進(jìn)了一些功能,比如應(yīng)網(wǎng)警的要求,紀(jì)錄會(huì)員每一次登錄的IP,以及每一次發(fā)布帖子的IP,甚至評(píng)論,留言的IP都有紀(jì)錄。也有很多在總結(jié)網(wǎng)友的建議和意見基礎(chǔ)上,進(jìn)行的一些修改,如樓主可以針對(duì)網(wǎng)友的評(píng)論直接回復(fù),還有會(huì)員發(fā)表文章,不再局限于之前系統(tǒng)限制的文章類別,可以添加自己定義的文章類別等。
但是新的測(cè)試版本一傳上去,就出現(xiàn)一個(gè)很大的問題,就是速度特別慢。后來檢查原因,是CPU占用率居高不下,常常達(dá)到100%不下來。查看進(jìn)程,竟然是SQL服務(wù)器占用的CPU資源。這不是攻擊也不是病毒,是自己寫的一些SQL語句優(yōu)化不好導(dǎo)致的。
想了很多原因,一一去調(diào)試,甚至直接刪除了很多頁面,獨(dú)留下幾個(gè)文章頁面,問題還是一樣。有段時(shí)間都快崩潰了,問了很多人,都只是說SQL語句引起的,卻找不到是哪些語句。
只好一個(gè)頁面一個(gè)頁面去測(cè)試。這樣一來,就等于又要一切從頭來過,加起來有成千上萬行的代碼,可以說是一條條去不斷測(cè)試。終于在第三天,發(fā)現(xiàn)占用CPU資源的語句,竟然是一個(gè)返回用戶頭像的循環(huán)語句。
這個(gè)語句很重要,因?yàn)樵诿科恼潞竺娴脑u(píng)論,在循環(huán)調(diào)用評(píng)論的數(shù)據(jù)同時(shí),也會(huì)循環(huán)去會(huì)員頭像表里,去判斷他的頭像是否上傳,是否上傳了還在審核,或者是已經(jīng)審核過的。就是這樣一些循環(huán)里套用循環(huán)的查詢,導(dǎo)致SQL服務(wù)器占用CPU資源居高不下,把這個(gè)會(huì)員頭像取消掉,一律默認(rèn)成審核過的,然后用JS,在客戶端去判斷是否有添加圖片,這樣測(cè)試了好幾天,終于是正常了。但這樣會(huì)員上傳了頭像,還在審核中的提示,卻做不到了。
奇怪的是,這種情況在Access版本里的程序,卻是可以使用的,不過可能那個(gè)版本的流量不大。但是把這個(gè)SQL版本改好之后,那個(gè)也要改成用JS在客戶判斷。
如是耽誤了好幾天,把所有計(jì)劃打亂了,很多頁面都需要重新一個(gè)一個(gè)測(cè)試,有一些還要重做。我會(huì)爭(zhēng)取先把文章系統(tǒng)做好。
免責(zé)聲明: 本文內(nèi)容來源于黃高遠(yuǎn) ,不代表本平臺(tái)的觀點(diǎn)和立場(chǎng)。
版權(quán)聲明:本文內(nèi)容由注冊(cè)用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,武岡人網(wǎng)僅提供信息存儲(chǔ)服務(wù),不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲的內(nèi)容,請(qǐng)通過郵箱(admin@4305.cn)進(jìn)行舉報(bào),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。