MySQL 體系結構

2021-08-04 16:43:02 字數 1937 閱讀 5977

最近一直在忙專案,各種加班加點,專案上線,漸漸的沒有了學習的時間。這不,剛這幾天才能抽出點時間,忙裡偷閒,正在看一本資料庫的書籍,相信很多小夥伴們也都看過 — — 《mysql 技術內幕:innodb 儲存引擎》。這本書很詳細的講述了 mysql 的設計思想,體系結構,儲存引擎,索引,事務,以及對效能的調優等。當然,現在我也是剛剛看了一部分,至於現在寫這篇文章,主要是為了記錄一下我的學習歷程,並且和大家分享一些新的東西。

至於背景嘛,這裡就不多說了,如果感興趣的話,還是推薦大家看一看這本書的。那麼現在嘛,先了解一下 mysql 的體系結構也不錯,沒準還可以拿出來炫耀一下(純屬忽悠)。

在說體系結構之前,先說兩個名詞,而且是在資料庫領域裡很常見的兩個詞:「資料庫」和「資料庫例項」。

我想,小夥伴們肯定都知道這兩個名詞的,而且有時候還經常會區分不出來。那麼,什麼是「資料庫」?什麼又是「資料庫例項」呢?下面我就詳細跟大家說說。

首先說「資料庫」,資料庫是物理作業系統檔案或其他形式的檔案型別的集合。在 mysql 中,資料庫檔案可以是 frm、myd、myi、ibd 結尾的檔案。

然後說「資料庫例項」,資料庫例項是由資料庫後台程序/執行緒以及乙個共享記憶體區組成。共享記憶體可以被執行的後台程序/執行緒所共享。

需要注意的是,資料庫例項才是真正用來運算元據庫檔案的。

這兩個詞有時可以互換使用,但兩者的概念完全不同。在 mysql 中,例項和資料庫通常關係是一 一對應的,即乙個例項對應乙個資料庫,乙個資料庫對應乙個例項。但是,在集群情況下,可能存在乙個資料庫可被多個例項使用的情況。

mysql 是乙個可移植的資料庫,幾乎能在當前所有的作業系統上執行,如 unix/linux、windows、mac 和 solaris。各種系統在底層實現方面各有不同,但是 mysql 基本上能保證在各個平台上的物理體系結構的一致性。

mysql 由以下幾部分組成:

max_connections:就是整個mysql例項的最大連線數限制

max_user_connections:是單個使用者的最大連線數,這裡未指明是哪個使用者,是任意乙個使用者。

備份和恢復的安全性,複製,集群,管理,配置,遷移和元資料。

進行身份驗證、執行緒重用,連線限制,檢查記憶體,資料快取;管理使用者的連線,執行緒處理等需要快取的需求。

進行 dml、ddl,儲存過程、檢視、觸發器等操作和管理;使用者通過 sql 命令來查詢所需結果。

查詢翻譯物件的特權;sql 命令傳遞到解析器的時候會被解析器驗證和解析。

訪問路徑的統計資料;

在 mysql 優化語句過程中,可以通過設定 optimize_switch 控制優化行為。在生產環境上,某時間段 mysql 伺服器壓力特別大,load 一度達到了 100,查詢發現資料庫中有大量的 sql 語句 state 狀態 result sorting ,result sorting 這種排序特別消耗 cpu 和記憶體資源。抽取其中的一條 sql 檢視執行計畫。

全域性和引擎特定的快取和緩衝區;

mysql 的 windows 版本預設儲存引擎為 innodb,innodb 支援事務,並且提供行級的鎖定。

想要認識 mysql,這裡僅僅是個開始,在後續的學習中,我還會不定時的跟大家分享,同時,小夥伴們有新的想法也可以跟我一塊交流交流

mysql 體系結構 了解MySQL體系結構

mysql 資料庫體系結構圖 mysql 由以下幾部分組成 1 connectors 不同語言中與 sql 的互動 show variables like connection variable name value character set connection utf8 collation c...

簡述mysql體系結構 MySQL體系結構

一 mysql登入方式 一 tcp ip方式 遠端 本地 mysql uroot poldboy123 h 10.0.0.51 p3306 二 socket方式 mysql uroot poldboy123 s tmp mysql.sock 二 例項介紹 例項 mysqld後台守護程序 主線程 ma...

MySQL體系結構

了解mysql必須牢牢記住其體系結構圖,mysql是由sql介面,解析器,優化器,快取,儲存引擎組成的 1 connectors指的是不同語言中與sql的互動 2 management serveices utilities 系統管理和控制工具 3 connection pool 連線池。管理緩衝使...