大概分為四層,這個見仁見義,有不同的分法:
和上面的邏輯架構圖結合,說說比較容易理解的東西:
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叉搜尋樹,使用鏈式的結構把每一層的節點連線在一起,葉子節點中儲存資料,非葉子節點輔助查詢.主鍵索引和其他索引的不一樣 主鍵索引葉子節點儲存一條一條的資料...