MySQL系列文章(一)整體架構

2021-10-10 23:53:18 字數 1318 閱讀 7467

mysql整體的體系架構圖有很多,這個圖就很形象的展示了大致的結構。mysql server自頂向下分為網路連線層、服務層、儲存引擎層和系統檔案層。

1.1、網路連線層

主要提供與mysql伺服器建立連線的支援。

1.2、服務層

快取:快取機制是由一系列小快取組成的。比如表快取、記錄快取、許可權花村、引擎快取等

1.3、儲存引擎層

mysql儲存引擎是外掛程式式的,通過介面遮蔽了不同儲存引擎之間的差異。

1.4、系統檔案層

該層包括了日誌檔案、資料檔案和配置檔案

資料檔案

存放undo log、redo log、各種儲存引擎相關檔案

配置檔案

存放mysql配置資訊檔案,比如my.cnf、my.ini等

pid檔案

pid 檔案是 mysqld 應用程式在 unix/linux 環境下的乙個程序檔案,和許多其他 unix/linux 服務端程式一樣,它存放著自己的程序 id。

如上圖是整體執行機制的乙個流程,這裡重點說下查詢快取

2.1、聯結器

mysql -uname -p
通常是採用上述的命令輸入密碼登入到mysql中,預設自動連線斷開時間是8小時

2.2、查詢快取

mysql判斷快取命中的方法很簡單:快取存放在乙個引用表中,通過乙個雜湊值引用,這個雜湊值包括了如下因素,即查詢本身、當前要查詢的資料庫、客戶端協議的版本等一些其他可能會影響返回結果的資訊。

當判斷快取是否命中時,mysql不會解析、「正規化」或者引數化查詢語句,而是直接使用sql語句和客戶端傳送過來的其他原始資訊。任何字元上的不同,例如空格、注釋——任何的不同——都會導致快取的不命中。 (18) 所以在編寫sql語句的時候,需要特別注意這點。通常使用統一的編碼規則是乙個好的習慣,在這裡這個好習慣會讓你的系統執行得更快。

建議不要使用查詢快取,mysql也在8.0版本中取消了該特性

查詢快取的失效非常頻繁,只要有對乙個表的更新,這個表上所有的查詢快取都會被清空。因此很可能你費勁地把結果存起來,還沒使用呢,就被乙個更新全清空了。對於更新壓力大的資料庫來說,查詢快取的命中率會非常低。除非你的業務就是有一張靜態表,很長時間才會更新一次。比如,乙個系統配置表,那這張表上的查詢才適合使用查詢快取。

Tomcat原理系列之一 整體架構,抓住主線

tomcat的主線 作為乙個web容器,請求在服務端的第一站,理解tomcat對我們今後理解spring,理解springmvc等等很多框架都有很大的幫助。我們可以舉個生活場景來理解tomcat 工商局 tomcat 這樣理解起來是否清晰呢?tomcat的這種層次結構在 層面是如何體現的呢?答 上層...

Mybatis技術內幕 一 整體架構概覽

mybatis的整體架構分為三層,分別是基礎支援層 核心處理層和介面層。如圖所示 基礎支援層包含整個mybatis的基礎模組,這些模組為核心處理層的功能提供了良好的支撐。下面簡單描述各個模組的功能。在核心處理層中實現了mybatis的核心處理流程,其中包括mybatis的初始化以及完成依次資料庫操作...

OkHttp 3 7原始碼分析(一) 整體架構

okhttp3.7原始碼分析文章列表如下 okhttp是乙個處理網路請求的開源專案,是android端最火熱的輕量級框架,由移動支付square公司貢獻用於替代httpurlconnection和apache httpclient。隨著okhttp的不斷成熟,越來越多的android開發者使用okh...