現(xiàn)在的網(wǎng)站已經(jīng)完全淘汰以前的純靜態(tài)網(wǎng)站,基本都有一個(gè)完善的后臺(tái)管理系統(tǒng),網(wǎng)站數(shù)據(jù)基本都存儲(chǔ)在數(shù)據(jù)庫(kù)里,常見(jiàn)的數(shù)據(jù)庫(kù)有mssql\mysql\access\oracle等,經(jīng)過(guò)方維網(wǎng)絡(luò)程序部幾年經(jīng)驗(yàn)發(fā)現(xiàn),網(wǎng)站速度的瓶頸關(guān)鍵在于網(wǎng)站和數(shù)據(jù)庫(kù)的連接,那么如果實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢才能達(dá)到最佳效果呢?
方維網(wǎng)絡(luò)總結(jié)了如下幾條原則:
1、用多少數(shù)據(jù)就取多少的原則
1)除非真的需要讀取全部,不然絕對(duì)不要用select *,需要讀哪些字段就讀哪些字段,別偷懶,因?yàn)樽x多少,數(shù)據(jù)庫(kù)就要傳輸多少給網(wǎng)站,但是寬帶是有限的.
2)大數(shù)據(jù)分頁(yè)不要獲取所有數(shù)據(jù)再分頁(yè),這種情況對(duì)于NET新手非常常見(jiàn),主要是MSSQL\ACCESS數(shù)據(jù)庫(kù)分頁(yè)沒(méi)有MYSQL等那么方便.
2、減少連表查詢
連表查詢的速度是最慢的,但是卻經(jīng)常要用的,如何解決這個(gè)問(wèn)題呢,可以先查詢關(guān)聯(lián)表ID的數(shù)據(jù),然后再單表查詢,或者先把主查詢表數(shù)據(jù)查詢出來(lái),然后再讀取連表數(shù)據(jù),當(dāng)數(shù)據(jù)量比較大是,效果越明顯。
3、給數(shù)據(jù)庫(kù)經(jīng)常查詢的表加索引
1、每個(gè)表盡量加一個(gè)INT型的自增主鍵,然后加索引;
2、經(jīng)常查詢的列加索引;
4、優(yōu)化數(shù)據(jù)庫(kù)結(jié)構(gòu),減少不必要的查詢
數(shù)據(jù)庫(kù)結(jié)構(gòu)非常重要,如何優(yōu)化需要看具體情況,這里我就不一一說(shuō)明了
5、經(jīng)常使用不經(jīng)常更新的數(shù)據(jù)緩存起來(lái)
如一些基表等沒(méi)必要每次讀取都查詢數(shù)據(jù)庫(kù),完全可以緩存起來(lái)
優(yōu)化數(shù)據(jù)庫(kù)查詢對(duì)于提高網(wǎng)站打開(kāi)速度、減輕服務(wù)器壓力非常重要,是網(wǎng)站程序員的一門(mén)必修課。
方維網(wǎng)站建設(shè)專注于打造最完善的網(wǎng)站定制系統(tǒng),歡迎廣大客戶咨詢400-800-9385
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://www.sdlwjx666.com/news/2198.html