MySQL整個查詢執行過程與優化,引擎間的區別

2021-10-05 10:24:52 字數 754 閱讀 5305

1

.客戶端向mysql伺服器傳送一條查詢請求

2.伺服器首先先檢查查詢快取,如果命中快取,則立刻返回儲存在快取中的結果。否則進入下一級段

3.伺服器進行sql解析、預處理、再由優化器生成對應的執行計畫

4.mysql根據執行計畫,呼叫儲存引擎的api來執行查詢

5.將結果返回給客戶端,同時快取查詢結果

1,優化索引、sql語句、分析慢查詢

2,設計表的時候嚴格根據資料庫的設計正規化來設計資料庫

3,使用快取,把經常訪問到的資料而且不需要經常變化的資料放到快取中,能節約磁碟的io

4,優化硬體,採用ssd,使用磁碟佇列技術

5、採用mysql內部自帶的表分割槽技術,把資料分層不同的檔案,能夠提高磁碟的讀取效率

6,垂直分表,把不經常讀的資料放到一張表裡,節約磁碟io

7,主從分離讀寫,採用主從複製把資料庫的讀操作和寫入操作分離開來

8,分庫分表分機器(資料量特別大),主要的原理就是資料路由

9,選擇合適的引擎

10,進行架構級別的快取,靜態化和分布式

11,不採用全文索引

12,採用更快的儲存方式,例如nosql儲存經常訪問的資料

myisam:不支援事務,不支援外來鍵,支援索引,預設引擎		適用查詢,插入為主的應用

innodb:支援事務,支援外來鍵,不支援索引,非預設引擎 適用更改,涉及到安全性的應用

mysql查詢過程 MySQL查詢執行過程

mysql查詢執行路徑 1.客戶端傳送一條查詢給伺服器 2.伺服器先會檢查查詢快取,如果命中了快取,則立即返回儲存在快取中的結果。否則進入下一階段 3.伺服器端進行sql解析 預處理,再由優化器生成對應的執行計畫 4.mysql根據優化器生成的執行計畫,呼叫儲存引擎的api來執行查詢 5.將結果返回...

mysql查詢執行過程

查詢優化,索引優化,庫表結構優化需要齊頭並進,乙個不落。首先要稍微了解一下查詢執行的基礎,當希望mysql高效能執行查詢時,最好的辦法就是弄清楚mysql是如何優化和執行查詢的。一旦理解這一點,很多查詢工作實際上就是遵循一些原則讓優化器能夠按照預想的合理方式執行。當客戶端傳送了乙個sql查詢請求,那...

MySQL查詢語句執行過程

先上圖 眾所周知在mysql資料庫應用中查詢請求是使用最多的,假設我們輸入下面的sql,通過客戶端請求mysql伺服器,會得到乙個包含user的結果集。但是,其中mysql的處理過程我們並不了解,那麼下面就讓我們一起看看在查詢請求前後mysql服務端發生了些什麼吧。如上圖所示,整張圖由三部分組成,從...