MySQL架構和索引

2022-04-23 12:51:12 字數 1263 閱讀 5033

大概分為四層,這個見仁見義,有不同的分法:

和上面的邏輯架構圖結合,說說比較容易理解的東西:

paeser :解析器,見名知意,就是解析sql的乙個模組,主要的功能:

optimezer:查詢優化器

cache和buffer:查詢快取

儲存引擎介面:

show engines:檢視儲存引擎

寫寫日常使用的兩種儲存引擎 :myisam 和 innodb

myisam是之前的版本,也是isam的變更版本,支援表鎖,不支援事務,讀取特別快使用

innodb是5.5版本之後預設的儲存引擎,支援表鎖,行鎖,支援事務,或許就是為了彌補myisam不支援事務和外來鍵的產生的吧

mysql是通過檔案系統對資料進行管理的,從檔案上可以分為日誌檔案和資料檔案

我們先說日誌檔案,這個還是比較重要的:

錯誤日誌:err log

二進位制日誌 :bin log

通用查詢日誌:general query log

慢查詢日誌

中繼日誌

檢視mysql的資料檔案 : show variables like '%datadir%';

在給出的路徑下,有以下幾種檔案型別:

myisam和innoddb講解:這兩個使用的都是b+ tree

單列索引:

組合索引:在表中多個字段組合上建立的索引,想使用索引,需遵循最左字首原則

刪除索引:

樹的高度一般都是在2-4這個高度,樹的深度影響 io 讀寫的次數,影響效能

b tree 和 b+ tree最大區別在於:非葉子節點是否儲存資料 b tree的葉子和非葉子節點都會儲存資料

b+ tree 只有葉子節點才會儲存資料,非葉子節點儲存指標,指向另乙個裝載資料的容器

非聚集索引:

聚集索引:

mysql索引框架 MySQL架構和MySQL索引

1.mysql架構 1.1邏輯架構圖 1.1.1connection pool 連線池 管理緩衝使用者連線,執行緒處理等需要快取的需求。負責監聽對mysql server的各種請求,接收連線請求,所有連線請求到執行緒管理模組。每乙個連線上mysql server的客戶端請求都會被分配 或建立 乙個連...

mysql索引要素 mysql索引和索引的原理

首先為什麼要加索引?資料庫伺服器有兩種儲存介質,我們需要把索引放到硬碟上,在硬碟上進行查詢時會產生i o 操作 我們通過索引來查詢某 資料的時候,需要計算產 的磁碟 i o 次數,當磁碟 i o 次數越多,所消耗的時間也就越 如果我們能讓索引的資料結構儘量減少硬碟的 i o操作,所消耗的時間也就越 ...

mysql索引和事務 MySql索引和事務

mysqlde 索引 目的 是為了加快查詢的速度,避免順序查詢,但是拖慢了插入和刪除的速度.應用在在經常查詢,很少少出插入的場景中.結構 b 樹,n叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.主鍵索引和其他索引的不一樣 主鍵索引葉子節點儲存一條一條的資料...