溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

量比較多的數(shù)據(jù)庫該怎樣優(yōu)化

發(fā)布時間:2021-11-29 11:31:43 來源:億速云 閱讀:150 作者:柒染 欄目:數(shù)據(jù)庫

這期內(nèi)容當中小編將會給大家?guī)碛嘘P量比較多的數(shù)據(jù)庫該怎樣優(yōu)化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

查詢的優(yōu)化

  保證在實現(xiàn)功能的基礎上,盡量減少對數(shù)據(jù)庫的訪問次數(shù);通過搜索參數(shù),盡量減少對表的訪問行數(shù),最小化結(jié)果集,從而減輕網(wǎng)絡負擔;能夠分開的操作盡量分開處理,提高每次的響應速度;在數(shù)據(jù)窗口使用SQL時,盡量把使用的索引放在選擇的首列;算法的結(jié)構盡量簡單;在查詢時,不要過多地使用通配符如SELECT*FROMT1語句,要用到幾列就選擇幾列如:SELECTCOL1,COL2FROMT1;在可能的情況下盡量限制盡量結(jié)果集行數(shù)如:SELECTTOP300COL1,COL2,COL3FROMT1,因為某些情況下用戶是不需要那么多的數(shù)據(jù)的。

  在沒有建索引的情況下,數(shù)據(jù)庫查找某一條數(shù)據(jù),就必須進行全表掃描了,對所有數(shù)據(jù)進行一次遍歷,查找出符合條件的記錄。在數(shù)據(jù)量比較小的情況下,也許看不出明顯的差別,但是當數(shù)據(jù)量大的情況下,這種情況就是極為糟糕的了。

  SQL語句在SQLSERVER中是如何執(zhí)行的,他們擔心自己所寫的SQL語句會被SQLSERVER誤解。比如:

  select * from table1 where name = 'zhangsan'and tID > 10000

  和執(zhí)行:

  select * from table1 wheret ID > 10000 and name = 'zhangsan'

  一些人不知道以上兩條語句的執(zhí)行效率是否一樣,因為如果簡單的從語句先后上看,這兩個語句的確是不一樣,如果tID是一個聚合索引,那么后一句僅僅從表的10000條以后的記錄中查找就行了;而前一句則要先從全表中查找看有幾個name='zhangsan'的,而后再根據(jù)限制條件條件tID>10000來提出查詢結(jié)果。

  事實上,這樣的擔心是不必要的。SQLSERVER中有一個“查詢分析優(yōu)化器”,它可以計算出where子句中的搜索條件并確定哪個索引能縮小表掃描的搜索空間,也就是說,它能實現(xiàn)自動優(yōu)化。雖然查詢優(yōu)化器可以根據(jù)where子句自動的進行查詢優(yōu)化,但有時查詢優(yōu)化器就會不按照您的本意進行快速查詢。

  在查詢分析階段,查詢優(yōu)化器查看查詢的每個階段并決定限制需要掃描的數(shù)據(jù)量是否有用。如果一個階段可以被用作一個掃描參數(shù)(SARG),那么就稱之為可優(yōu)化的,并且可以利用索引快速獲得所需數(shù)據(jù)。

上述就是小編為大家分享的量比較多的數(shù)據(jù)庫該怎樣優(yōu)化了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI