MySQL技術內幕 InnoDB儲存引擎 筆記

2021-06-18 12:40:01 字數 1149 閱讀 6004

mysql 體系結構和儲存引擎

資料庫:物理作業系統檔案或其他形式檔案內容的集合;

資料庫例項:有資料庫後台程序/執行緒記憶乙個共享記憶體區組成;

mysql資料庫在沒有配置檔案的情況下,會按照編譯時的預設引數設定啟動例項;mysql 按照/etc/my.cnf->/etc/mysql、my.cnf->/usr/local/mysql/etc/my.cnf->~/etc/my.cnf來讀取配置項,以讀取到的最後乙個配置檔案中的引數為準;

mysql體系架構

mysql區別於其他資料庫的最重要特定就是其外掛程式式的儲存引擎。

儲存引擎是基於表的,而不是資料庫;

mysql

表儲存引擎:

innodb

儲存引擎:支援事務,主要面向oltp(online transaction processing)、行鎖、支援外來鍵、非鎖定讀,通過多版本併發控制(mvcc)來獲得高併發性、預設採用repeaable級別(可重複讀),通過next-keylocking策略避免幻讀、插入緩衝、二次寫、自適應雜湊索引、預讀 。表中資料的儲存採用聚集的方式,每張表的儲存都按主機的順序儲存,如果沒有顯式地在表定義中指定主鍵,innodb儲存引擎會為每一行生成乙個6位元組的rowid,以此為主鍵。

myisam

儲存引擎:

ndb儲存引擎:集群儲存引擎,share nothing,資料全放在記憶體(從5.1版本開始,非索引資料可放在磁碟),新增ndb資料儲存結點可以線性提高資料庫效能,高可用性,高效能

不足:join操作是在mysql資料庫層完成,而不是儲存引擎層完成的;複雜的連線操作需要巨大的網路開銷,查詢速度很慢。

memory

儲存引擎:資料存放在記憶體中,表鎖,併發效能差,預設使用雜湊索引

archive

儲存引擎:只支援insert和select zlib演算法壓縮1:10,適合儲存歸檔資料如日誌等、行鎖

maria

儲存引擎:目的取代myisam、快取資料和索引、行鎖、mvcc

各種儲存引擎之間的比較:

MySQL技術內幕InnoDB儲存引擎

第5章 索引與演算法 p174 217 5.1 innodb儲存引擎索引概述 5.2 二分查詢法 5.3 平衡二叉樹 5.4 b 樹 5.4.1b 樹的插入操作 5.4.2b 樹的刪除操作 了解了一下例子 5.5b 樹索引 p181 195 5.5.1聚集索引 按主鍵建立b 樹索引 5.5.2非聚集...

MySQL技術內幕 InnoDB儲存引擎

第五章 索引與演算法 常用的型別有 all index range ref eq ref const system null 從左到右,效能從差到好 all full table scan,mysql將遍歷全表以找到匹配的行 index full index scan,index與all區別為ind...

MySQL技術內幕 InnoDB儲存引擎 一

第一章 mysql體系結構和儲存引擎 1定義資料庫和例項 資料庫 database 和 例項 instance 是兩個容易被混淆的概念。其中,資料庫是指 物理作業系統檔案或其他形式檔案型別的集合 例項是指 mysql資料庫由後台執行緒以及乙個共享記憶體區組成。資料庫例項才是真正用於運算元據庫檔案的。...