2024-01-21 分類: 網(wǎng)站建設(shè)
隨著成都網(wǎng)站建設(shè)網(wǎng)站的使用時間越來越久,網(wǎng)站數(shù)據(jù)的存儲量越來越大,服務(wù)器的性能需要更好地去優(yōu)化,才能保證網(wǎng)站更優(yōu)秀地運行。近日,我們在網(wǎng)上找了好多關(guān)于SQL優(yōu)化的教程,感覺這篇教程講的很詳細,效果更為明顯?,F(xiàn)在推薦給大家,大家一起學(xué)習(xí),一起進步。
網(wǎng)上關(guān)于數(shù)據(jù)庫優(yōu)化的教程有很多,但是又多又亂的。最近因為服務(wù)器需要優(yōu)化一下,所以從網(wǎng)上整理了一些,寫出來跟大家分享一下,有什么不對和不足的地方,還請大家糾正補充。這篇文章我花費了大量的時間查找資料、修改、排版,希望大家閱讀之后,感覺好的話推薦給更多的人,讓更多的人看到、學(xué)習(xí)、糾正補充。
1.盡量避免在 where 子句中使用 or 來連接條件,如果一個字段有索引,一個字段沒有索引,將導(dǎo)致引擎放棄使用索引而進行全表掃描,如:
selectid fromt wherenum=10orName ='admin'
可以這樣查詢:
selectid fromt wherenum = 10
unionall
selectid fromt whereName ='admin'
2.盡量避免在 where 子句中對字段進行 null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進行全表掃描,如:
selectid fromt wherenum isnull
最好不要給數(shù)據(jù)庫留NULL,盡可能的使用NOT NULL填充數(shù)據(jù)庫.
備注、描述、評論之類的不重要的可以設(shè)置為NULL,其他的,最好不要使用NULL。不要以為NULL 不需要占用空間,比如:char(100) 型,在字段建立時,空間就固定了,不管是不是插入值(NULL也包含在內(nèi)),都是占用100個字符的空間的,如果是varchar這樣的變長字段,null 不占用空間??梢栽趎um上設(shè)置默認值0,確保表中num列沒有null值,然后這樣查詢:
selectid fromt wherenum =0
3.應(yīng)盡量避免在 where 子句中使用 != 或 <> 操作符,否則將引擎放棄使用索引而進行全表掃描。
4.適當(dāng)?shù)臅r候應(yīng)該考慮在where 及 order by 涉及的列上建立索引。以提高查詢速度。
5.下面的查詢也會導(dǎo)致全表掃描:
selectid fromt wherename like‘%abc%’
若要提高效率,可以考慮全文檢索的哦。
6.in 和 not in 也要慎用,否則也會導(dǎo)致全表掃描。
7.應(yīng)盡量避免在where子句中對字段進行函數(shù)操作,這將導(dǎo)致引擎放棄使用索引,而進行全表掃描。如:
selectid fromt wheresubstring(name,1,3) = ’abc’ -–name以abc開頭的id
selectid fromt wheredatediff(day,createdate,’2005-11-30′) = 0 -–‘2005-11成都網(wǎng)站建設(shè)之網(wǎng)站數(shù)據(jù)庫優(yōu)化
URL地址:http://www.rwnh.cn/news42/314742.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)站改版、微信小程序、網(wǎng)站營銷、外貿(mào)建站、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容