獨(dú)享云虛擬主機(jī)與共享云虛擬主機(jī)出現(xiàn)耗資源cpu跑滿,或者因?yàn)楹馁Y源被關(guān)停。
問題原因:
1、程序出現(xiàn)死循環(huán)。
2、程序有嵌套查詢。
3、采用access數(shù)據(jù)庫,數(shù)據(jù)庫較大。
4、數(shù)據(jù)庫索引較差。
以上問題都會引起服務(wù)器資源浪費(fèi),甚至耗資源異常情況。
解決方法:
1、出現(xiàn)死循環(huán)很多情況下是因?yàn)槌绦蛉鄙俦匾臋z測和判斷條件導(dǎo)致,這種情況需網(wǎng)站開發(fā)對站點(diǎn)程序的代碼進(jìn)行檢查和完善;
2、嵌套查詢會造成數(shù)據(jù)庫的查詢量呈指數(shù)級上升,導(dǎo)致一個程序的效率非常低,將程序代碼改為連表操作,查詢數(shù)據(jù)庫的次數(shù)會少很多,并且在設(shè)計數(shù)據(jù)庫的時候應(yīng)該將表的字段建立索引,否則連表查詢的時候性能會差很多。(連表操作+建立索引);
3、如果采用access數(shù)據(jù)庫,當(dāng)數(shù)據(jù)庫的容量比較大(比如超過 100M 以上),性能就可能會出現(xiàn)問題,所以訪問量大的網(wǎng)站一般都采用 sqlserver、mysql、oracle 等性能比較高的數(shù)據(jù)庫引擎。
4、一個表至少有一個主鍵和N個外鍵,一般主鍵作為表的唯一標(biāo)識。當(dāng)檢索數(shù)據(jù)時,如果以主鍵的值來進(jìn)行查找的話效率會比較高,而一些標(biāo)志性的字段,如產(chǎn)品表的產(chǎn)品所屬分類、用戶表的用戶等級等,如果在程序中經(jīng)常要用到這些字段來進(jìn)行檢索數(shù)據(jù),那么一般應(yīng)該為這些字段建立索引,這樣檢索數(shù)據(jù)的時候性能會好很多;