Mysql 01 架構介紹

2021-08-14 22:03:19 字數 1347 閱讀 2032

1.mysql的配置檔案:

1.1二進位制檔案:主從複製;

1.2錯誤日誌:預設是關閉的,記錄嚴重警告和錯誤資訊,每次啟動和關閉的詳細資訊等;

1.3查詢日誌:預設關閉,記錄查詢sql語句,如果開啟會減低mysql的整體效能,因為記錄日誌也是需要消耗系統資源的;

1.4資料檔案: linux:/var/lib/mysql; 

1.5frm檔案:存放表結構;

1.6myd檔案:存放表資料;

1.7myi檔案:存放表索引;

2.mysql的整體邏輯架構:

和其他資料庫相比,mysql有些與眾不同,他的架構可以在多種不同場景中應用並發揮良好作用。主要體現在儲存引擎的架構上,外掛程式式的儲存引擎架構將查詢處理和其他的系統任務以及資料的提取相分離。這種架構可以根據業務的需求和實際需求選擇合適的儲存引擎。

架構圖:

連線層:最上層是一些客戶端和連線服務,包含本地sock通訊和大多數基於客戶端/服務端工具實現的類似於tcp/ip的通訊。主要完成一些類似於連線處理、授權認證、以及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接入的客戶端提供執行緒,同樣在該層上可以實現基於ssl的安全連線。伺服器也會為安全接入的每個客戶端驗證它所具有的操作許可權。

服務層:第二層架構主要完成大多數的核心服務功能,如sql介面,並完成快取的查詢,sql的分析和優化以及部分內建函式的執行。所有跨儲存引擎的功能也在這一層實現,如過程,函式等。在該層,伺服器會解析查詢並建立相應的內部解析樹,並對其完成相應的優化如確定查詢表的順序,是否利用索引等,最後生成相應的執行操作。如果是select語句,伺服器還會查詢北部的快取。如果儲存空間足夠大,這樣在解決大量讀操作的環境中能夠很好的提公升系統的效能。

引擎層:儲存引擎層,儲存引擎真正的負責了mysql中資料的儲存和讀取,伺服器通過api與儲存引擎進行通訊。不同的儲存引擎具有的功能不同,這樣我們可以根據自己的實際需求進行選取。後面介紹mylsam和innodb。

儲存層:資料儲存層將資料儲存在執行於裸裝置的檔案系統之上,並完成與儲存引擎的互動。

3.mysql的儲存:

分類:myisam和innodb

在linux上檢視mysql>show engines;

再見MYSQL 01 架構與歷史

事務的隔離級別 這比我們平時了解的要複雜 死鎖多個事務對同乙個資源進行占用,都鎖定給自己用,結果都用不了。如下圖,如果兩個事務都執行了第一行的語句,到第二行就會互相死鎖了。innodb目前的處理辦法是,將持有最少行級排他鎖的事務進行回滾。這也是比較簡單的死鎖回滾演算法。要解決這個問題,大部分情況下只...

MySQL 01 資料庫介紹

一 rdbms relational database management system,關聯式資料庫管理系統 二 sql structured query language,結構化查詢語言 sql 是一種用來操作rdbms的資料庫語言,當前關係型資料庫都支援使用sql語言進行操作,也就是說可以通...

MySQL 01 基礎知識

作為乙個學機械的應該熟悉一下 mysql 不做深究,內容如下 system centos6.8安裝 yum install mysql ubuntu 16.04 安裝 apt get install mysql server 檢查是否安裝 rpm qa grep mysql 檢查狀態 service...