mysql 數據庫海量數據查詢與優(yōu)化 |
| 發(fā)布時間: 2012/6/24 17:50:44 |
|
許多程序員認為查詢優(yōu)化是DBMS(數據庫教程管理系統(tǒng))的任務,與程序員所編寫的SQL語句關系不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數十倍。查詢計劃是用戶所提交的SQL語句的集合,查詢規(guī)劃是經過優(yōu)化處理之后所產生的語句集合。DBMS處理查詢計劃的過程是這樣的:在做完查詢語句的詞法、語法檢查之后,將語句提交給DBMS的查詢優(yōu)化器,優(yōu)化器做完代數優(yōu)化和存取路徑的優(yōu)化之后,由預編譯模塊對語句進行處理并生成查詢規(guī)劃,然后在合適的時間提交給系統(tǒng)處理執(zhí)行,最后將執(zhí)行結果返回給用戶。在實際的數據庫產品(如Oracle、Sybase等)的高版本中都是采用基于代價的優(yōu)化方法,這種優(yōu)化能根據從系統(tǒng)字典表所得到的信息來估計不同的查詢規(guī)劃的代價,然后選擇一個較優(yōu)的規(guī)劃。雖然現在的數據庫產品在查詢優(yōu)化方面已經做得越來越好,但由用戶提交的SQL語句是系統(tǒng)優(yōu)化的基礎,很難設想一個原本糟糕的查詢計劃經過系統(tǒng)的優(yōu)化之后會變得高效,因此所寫語句的優(yōu)劣至關重要。下面重點說明改善查詢計劃的解決方案。 本文出自:億恩科技【www.xuefeilisp.com】 |
京公網安備41019702002023號