mysql体系结构和存储引擎
轉自: mysql技術內幕:innodb存儲引擎(非常棒的一本書)
?
【1】mysql體系結構和存儲引擎
【1.2】mysql體系結構
1)mysql數據庫實例在系統上的表現就是一個進程;
2)數據庫與數據庫實例的區別:
數據庫是文件的集合,是根據某種模型組織文件并其存放在二級存儲器中的數據集合;
數據庫實例是程序,用戶對數據庫文件的增刪改查都是通過數據庫實例程序去完成的;
更貼切地說:數據庫是由一個個文件組成的(二進制文件),要對這些文件進行增刪改查操作不能通過簡單的文件操作來實現,需要通過數據庫實例來完成;
?
【1.3】存儲引擎
1)mysql數據庫區別于其他數據庫的一個最重要的特點是: 有插件式的表存儲引擎;
2)存儲引擎是基于數據庫表而不是基于數據庫的;所以不同的數據庫表可以使用不同的存儲引擎,盡管這些表都屬于同一個數據庫;
?
3)存儲引擎分類:
3.1)innodb存儲引擎:
a.innodb存儲引擎支持事務,設計目標主要面向 OLTP(online transaction processing,聯機事務處理)的應用。特點是行鎖設計,支持外鍵,并支持非鎖定度,即默認讀數據不會產生鎖;
b.默認隔離級別是 READ REPEATABLE 可重復讀級別(RR);mysql默認隔離級別是 READ COMMITTED 可提交讀(RC);
c.之外, innodb還提供了 插入緩存(insert buffer), 二次寫(double write), 自適應哈希索引(adaptive hash index), 預讀(read ahead)等高性能和高可用的功能;
d.innodb 采用 聚集cluster存儲方式, 故每張表的存儲都是按照主鍵的順序進行存放的;
?
3.2)MyISAM 存儲引擎:
a.myisam 不支持事務,表鎖設計, 支持全文索引, 主要面向OLAP 數據庫應用;(online analysis processing, 聯機分析處理)
b.myisam 的緩沖池只 緩存索引文件,不緩存數據文件;
?
3.3)NDB 存儲引擎:集群存儲引擎, NDB == network database 網絡數據庫, ndb 是基于mysql集群的分布式數據庫系統;
a.ndb的所有數據都放在內存中;
?
3.4)Memory 存儲引擎: 內存存儲引擎
a.memory 將表中數據存放在內存中, 如果數據庫發生崩潰或重啟,表中的數據將會丟失;
b.memory默認使用哈希索引,不是B+索引;
?
3.5)Archive 存儲引擎:
a.archive 只支持 insert 和 select 操作;
b. archive 非常適合存儲歸檔數據, 如日志信息;
?
3.6)Federated 存儲引擎:
a. Federated 存儲引擎表并不存放數據, 它只是指向一臺遠程mysql 數據庫服務器上的表;
?
3.7)Maria 存儲引擎:
a.Maria設計目標是取代 MyISAM 存儲引擎,從而成為mysql的默認引擎;
b. Maria 存儲引擎的特點:支持緩存數據和索引文件,應用了行鎖,提供了MVCC功能, 支持事務和非事務安全的選項, 以及更好的blob 字符類型的處理性能;
?
?
?
總結
以上是生活随笔為你收集整理的mysql体系结构和存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑这样设置最省电电脑如何省电
- 下一篇: 小米均衡器设置(小米均衡器设置脚步声)