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

1.MySQL的邏輯架構

詳解高性能MySQL的架構與概念
最上面不是mysql特有的,所有基于網絡的c/s的網絡應用程序都應該包括連接處理、認證、安全管理等。

中間層是MySQL的核心,包括MySQL解析、分析、優化和緩存等。同時它還提供跨存儲引擎的功能,包括MySQLMySQLMySQL等。

最下面是存儲引擎,它負責存取數據。服務器通過storage engine MySQL可以和各種存儲引擎進行交互。

1.1、查詢優化和執行(Optimization and Execution)

MySQL將用戶的查詢語句進行解析,并創建一個內部的數據結構——分析樹,然后進行各種優化,例如重寫查詢、選擇讀取表的順序,以及使用哪個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的并發控制機制,下節詳細討論。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享