首頁  >  文章  >  資料庫  >  詳解高效能MySQL的架構與概念

詳解高效能MySQL的架構與概念

黄舟
黄舟原創
2017-03-15 17:18:351269瀏覽


1.MySQL的邏輯架構

詳解高效能MySQL的架構與概念
#最上方不是MySQL特有的,所有基於網路的C/S的網路應用程式都應該包括連接處理、認證、安全管理等。

中間層是MySQL的核心,包括查詢解析、分析、最佳化和快取等。同時它也提供跨儲存引擎的功能,包括預存程序觸發器檢視等。

最下面是儲存引擎,它負責存取資料。伺服器透過storage engine API可以和各種儲存引擎互動。

1.1、查詢最佳化與執行(Optimization and Execution)

MySQL將使用者的查詢語句進行解析,並建立一個內部的資料結構-分析樹,然後進行各種最佳化,例如重寫查詢、選擇讀取表的順序,以及使用哪個索引等。查詢優化器不關心一個表格所使用的儲存引擎,但是儲存引擎會影響伺服器如何最佳化查詢。優化器透過儲存引擎取得一些參數、某個操作的執行代價、以及統計資料等。在解析查詢之前,伺服器會先存取查詢快取(query cache)-它儲存SELECT語句以及對應的查詢結果集。如果某個查詢結果已經位於快取中,伺服器就不會再對查詢進行解析、最佳化、以及執行。它僅僅將快取中的結果傳回給用戶即可,這將大大提高系統的效能。

1.2、並發控制

MySQL提供兩個層級的並發控制:伺服器級(the server level)和儲存引擎級(the storage engine level)。加鎖是實現同時控制的基本方法,MySQL中鎖的粒度:

(1) 表級鎖定:MySQL獨立於儲存引擎提供表鎖,例如,對於ALTER TABLE語句,伺服器提供表鎖( table-level lock)。

(2)行級鎖定:InnoDB和Falcon儲存引擎提供行級鎖,此外,BDB支援頁級鎖定。 InnoDB的並發控制機制,下節詳細討論。


以上是詳解高效能MySQL的架構與概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn