天天看點

《MySQL DBA修煉之道》——1.3 查詢執行過程概述

本節書摘來自華章出版社《mysql dba修煉之道》一書中的第1章,第1.3節,作者:陳曉勇,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

圖1-2抽象化地描述了用戶端和資料庫互動的過程。

《MySQL DBA修煉之道》——1.3 查詢執行過程概述

圖1-2 用戶端與資料庫互動抽象架構圖

如圖1-2所示,用戶端(clients)釋出查詢的流程如下,首先連接配接mysql(connection handling),然後釋出查詢,如果緩存(query cache)中有結果集,則直接傳回結果集。如果結果沒有被緩存,那麼,mysql解析查詢(parser)将通過優化器(optimizer)生成執行計劃,然後運作執行計劃通過api(pluggable storage engine api)從存儲引擎擷取資料,并傳回給用戶端。

什麼是執行計劃(查詢計劃)呢?執行計劃就是一系列的操作步驟。sql是聲明性語言,它隻告訴資料庫要查詢什麼,但并不告訴資料庫如何去查。資料庫所要做的就是基于算法和統計資訊計算出一條最佳的通路路徑。這個工作是由優化器來完成的。優化器會比較不同的執行計劃,然後選擇其中最優的一套。