国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

設計高效合理的MySQL查詢語句_MySQL

來源:懂視網 責編:小采 時間:2020-11-09 17:43:23
文檔

設計高效合理的MySQL查詢語句_MySQL

設計高效合理的MySQL查詢語句_MySQL:從大多數系統的應用實例來看,查詢操作在各種數據庫操作中所占據的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。舉例來說,如果數據的量積累到一定的程度,比如一個銀行的賬戶數據庫表信息積累到上百萬甚至上千萬條記錄,全表掃描
推薦度:
導讀設計高效合理的MySQL查詢語句_MySQL:從大多數系統的應用實例來看,查詢操作在各種數據庫操作中所占據的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。舉例來說,如果數據的量積累到一定的程度,比如一個銀行的賬戶數據庫表信息積累到上百萬甚至上千萬條記錄,全表掃描

  從大多數系統的應用實例來看,查詢操作在各種數據庫操作中所占據的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。舉例來說,如果數據的量積累到一定的程度,比如一個銀行的賬戶數據庫表信息積累到上百萬甚至上千萬條記錄,全表掃描一次往往需要數十分鐘,甚至數小時。如果采用比全表掃描更好的查詢策略,往往可以使查詢時間降為幾分鐘,由此可見查詢優化技術的重要性。

  筆者在應用項目的實施中發現,許多程序員在利用一些前端數據庫開發工具(如PowerBuilder、Delphi等)開發數據庫應用程序時,只注重用戶界面的華麗,并不重視查詢語句的效率問題,導致所開發出來的應用系統效率低下,資源浪費嚴重。因此,如何設計高效合理的查詢語句就顯得非常重要。本文以應用實例為基礎,結合數據庫理論,介紹查詢優化技術在現實系統中的運用。

  分析問題

  許多程序員認為查詢優化是DBMS(數據庫管理系統)的任務,與程序員所編寫的SQL語句關系不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數十倍。查詢計劃是用戶所提交的SQL語句的集合,查詢規劃是經過優化處理之后所產生的語句集合。DBMS處理查詢計劃的過程是這樣的:在做完查詢語句的詞法、語法檢查之后,將語句提交給DBMS的查詢優化器,優化器做完代數優化和存取路徑的優化之后,由預編譯模塊對語句進行處理并生成查詢規劃,然后在合適的時間提交給系統處理執行,最后將執行結果返回給用戶。在實際的數據庫產品(如Oracle、Sybase等)的高版本中都是采用基于代價的優化方法,這種優化能根據從系統字典表所得到的信息來估計不同的查詢規劃的代價,然后選擇一個較優的規劃。雖然現在的數據庫產品在查詢優化方面已經做得越來越好,但由用戶提交的SQL語句是系統優化的基礎,很難設想一個原本糟糕的查詢計劃經過系統的優化之后會變得高效,因此用戶所寫語句的優劣至關重要。系統所做查詢優化我們暫不討論,下面重點說明改善用戶查詢計劃的解決方案。

  解決問題

  下面以關系數據庫系統Informix為例,介紹改善用戶查詢計劃的方法。

  1.合理使用索引

  索引是數據庫中重要的數據結構,它的根本目的就是為了提高查詢效率。現在大多數的數據庫產品都采用IBM最先提出的ISAM索引結構。索引的使用要恰到好處,其使用原則如下:

  ●在經常進行連接,但是沒有指定為外鍵的列上建立索引,而不經常連接的字段則由優化器自動生成索引。

  ●在頻繁進行排序或分組(即進行group by或order by操作)的列上建立索引。

  ●在條件表達式中經常用到的不同值較多的列上建立檢索,在不同值少的列上不要建立索引。比如在雇員表的“性別”列上只有“男”與“女”兩個不同值,因此就無必要建立索引。如果建立索引不但不會提高查詢效率,反而會嚴重降低更新速度。

  ●如果待排序的列有多個,可以在這些列上建立復合索引(compound index)。

  ●使用系統工具。如Informix數據庫有一個tbcheck工具,可以在可疑的索引上進行檢查。在一些數據庫服務器上,索引可能失效或者因為頻繁操作而使得讀取效率降低,如果一個使用索引的查詢不明不白地慢下來,可以試著用tbcheck工具檢查索引的完整性,必要時進行修復。另外,當數據庫表更新大量數據后,刪除并重建索引可以提高查詢速度。

  2.避免或簡化排序

  應當簡化或避免對大型表進行重復的排序。當能夠利用索引自動以適當的次序產生輸出時,優化器就避免了排序的步驟。以下是一些影響因素:

  ●索引中不包括一個或幾個待排序的列;

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

設計高效合理的MySQL查詢語句_MySQL

設計高效合理的MySQL查詢語句_MySQL:從大多數系統的應用實例來看,查詢操作在各種數據庫操作中所占據的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。舉例來說,如果數據的量積累到一定的程度,比如一個銀行的賬戶數據庫表信息積累到上百萬甚至上千萬條記錄,全表掃描
推薦度:
標簽: 查詢 設計 最大
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 久久久久久国产精品视频 | 亚洲欧美综合 | 91亚洲欧美综合高清在线 | 亚洲三级电影在线观看 | 亚洲精品视频在线播放 | 国产激情在线观看 | 亚洲国内精品 | 性久久久久久久久 | 亚洲第一视频网 | 91亚洲国产成人久久精品网站 | 国产一区二区免费播放 | 欧美视频精品 | 亚洲精品乱码久久久久久中文字幕 | 国内精品一区二区 | 免费国产精品视频 | 欧美日韩亚洲一区 | 日本免费一二三区 | 欧美日韩亚洲视频 | 欧美日韩国产在线观看 | 国产中文久久精品 | 久久久久久国产a免费观看黄色大片 | 四虎影视最新地址 | 亚洲精品制服丝袜二区 | 国产欧美色图 | 亚洲一区二区三区成人 | 国产资源视频在线观看 | 午夜视频免费看 | 国产va在线观看 | 天堂精品高清1区2区3区 | 久久一区二区三区免费 | 日韩三级网址 | 国产欧美一区二区三区视频 | 国产日韩欧美中文字幕 | 欧美 日韩 国产 色 欧美 日韩 中文 | 欧美视频精品在线 | 亚洲自拍偷拍区 | 日韩一页| 成人久久久精品乱码一区二区三区 | 老色99久久九九精品尤物 | 亚洲欧美日韩中文v在线 | 欧美日本道免费二区三区 |