自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入分析查詢語句對于MySQL系統(tǒng)效率影響

數(shù)據(jù)庫 MySQL
從大多數(shù)系統(tǒng)的應用實例來看,查詢操作在各種數(shù)據(jù)庫操作中所占據(jù)的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。

MySQL系統(tǒng)效率是每一個DBA都非常關注的部分,保障MySQL系統(tǒng)效率成為了我們最大的課題,那么MySQL系統(tǒng)效率都受哪些因素影響呢?

數(shù)據(jù)庫系統(tǒng)是管理信息系統(tǒng)的核心,基于數(shù)據(jù)庫的聯(lián)機事務處理(OLTP)以及聯(lián)機分析處理(OLAP)是銀行、企業(yè)、政府等部門最為重要的計算機應用之一。從大多數(shù)系統(tǒng)的應用實例來看,查詢操作在各種數(shù)據(jù)庫操作中所占據(jù)的比重最大,而查詢操作所基于的SELECT語句在SQL語句中又是代價最大的語句。

舉例來說,如果數(shù)據(jù)的量積累到一定的程度,比如一個銀行的賬戶數(shù)據(jù)庫表信息積累到上百萬甚至上千萬條記錄,全表掃描一次往往需要數(shù)十分鐘,甚至數(shù)小時。如果采用比全表掃描更好的查詢策略,往往可以使查詢時間降為幾分鐘,由此可見查詢優(yōu)化技術的重要性在應用項目的實施中發(fā)現(xiàn),許多程序員在利用一些前端數(shù)據(jù)庫開發(fā)工具(如PowerBuilder、Delphi等)開發(fā)數(shù)據(jù)庫應用程序時,只注重用戶界面的華麗,并不重視查詢語句的效率問題,導致MySQL系統(tǒng)效率低下,資源浪費嚴重。

因此,如何設計高效合理的查詢語句就顯得非常重要。

分析問題

許多程序員認為查詢優(yōu)化是DBMS(數(shù)據(jù)庫管理系統(tǒng))的任務,與程序員所編寫的SQL語句關系不大,這是錯誤的。一個好的查詢計劃往往可以使程序性能提高數(shù)十倍。查詢計劃是用戶所提交的SQL語句的集合,查詢規(guī)劃是經(jīng)過優(yōu)化處理之后所產生的語句集合。

DBMS處理查詢計劃的過程是這樣的:

在做完查詢語句的詞法、語法檢查之后,將語句提交給DBMS的查詢優(yōu)化器,優(yōu)化器做完代數(shù)優(yōu)化和存取路徑的優(yōu)化之后,由預編譯模塊對語句進行處理并生成查詢規(guī)劃,然后在合適的時間提交給系統(tǒng)處理執(zhí)行,最后將執(zhí)行結果返回給用戶。

在實際的數(shù)據(jù)庫產品(如Oracle、Sybase等)的高版本中都是采用基于代價的優(yōu)化方法,這種優(yōu)化能根據(jù)從系統(tǒng)字典表所得到的信息來估計不同的查詢規(guī)劃的代價,然后選擇一個較優(yōu)的規(guī)劃。雖然現(xiàn)在的數(shù)據(jù)庫產品在查詢優(yōu)化方面已經(jīng)做得越來越好,但由用戶提交的SQL語句是系統(tǒng)優(yōu)化的基礎,很難設想一個原本糟糕的查詢計劃經(jīng)過系統(tǒng)的優(yōu)化之后會變得高效,因此用戶所寫語句的優(yōu)劣至關重要。

 

 

【編輯推薦】

MySQL日期函數(shù)和時間函數(shù)

改造自discuz的MySQL查詢類

深度解析MySQL查詢緩存機制

MySQL查詢中的非空問題

使用函數(shù)實現(xiàn)MySQL查詢行號

責任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關推薦

2010-11-25 11:07:28

MySQL慢查詢

2010-08-11 15:47:04

Google GFS文

2010-09-07 14:21:22

PPPoE協(xié)議

2022-04-12 08:30:45

TomcatWeb 應用Servlet

2011-03-23 11:01:55

LAMP 架構

2009-10-15 11:15:12

智能布線系統(tǒng)

2010-03-08 14:53:48

Linux分區(qū)

2011-09-01 13:51:52

JavaScript

2023-02-01 08:13:30

Redis內存碎片

2022-08-30 07:00:18

執(zhí)行引擎Hotspot虛擬機

2021-10-29 16:36:53

AMSAndroidActivityMan

2009-12-14 14:50:46

Ruby傳參數(shù)

2009-12-16 16:39:01

Visual Stud

2009-06-10 18:12:38

Equinox動態(tài)化OSGi動態(tài)化

2009-08-13 09:18:43

2018-12-18 10:11:37

軟件復雜度軟件系統(tǒng)軟件開發(fā)

2015-08-03 09:54:26

Java線程Java

2018-10-25 15:24:10

ThreadLocal內存泄漏Java

2020-12-07 06:23:48

Java內存

2013-11-14 17:02:41

Android多窗口
點贊
收藏

51CTO技術棧公眾號