mysql 存储引擎接口_MySQL体系结构和存储引擎
數據庫與傳統文件系統最大的區別在于數據庫是支持事務的
一、定義數據庫與實例
1、數據庫:
物理操作系統的文件或者其他文件類型的集合,依照某種數據模型組織起來并存儲于二級存儲器中的數據集合。
2、實例:
MySQL數據庫由一個后臺進程以及一個共享區域組成,是程序,是位于用戶與操作系統之間的一層數據管理軟件,用戶對數據庫數據的任何操作,包括數據定義、數據查詢、數據維護、數據運行控制等都是在數據庫實例下進行的,應用程序只有通過數據庫實例才能和數據庫打交道。
*:在集群情況下,可能出現一個數據庫多個實例的情況;
MySQL被設計成為一個單進程多線程架構的數據庫;
MySQL數據庫實例在系統上表現就是一個進程。
二、MySQL體系結構
MySQL由以下幾個部分組成
①連接池組件 ②管理服務與工具組件 ③sql接口組件 ④查詢分析器組件
⑤優化器組件 ⑥緩沖組件 ⑦插件式存儲引擎 ⑧物理文件
三、存儲引擎
MySQL數據庫區別于其他數據庫的最重要的一個特點是它的插件式表存儲引擎,存儲引擎是基于表,而不是基于數據庫的。
存儲引擎的好處在于,可以根據業務的需要選擇不同特點的存儲引擎,從而達到目的。
幾個常見的存儲引擎:
1、InnoDB存儲引擎
①最重要的一個特點在于“支持事務”。其設計目標面向在線事務處理(OLTP)的應用。
②將數據存儲在一個邏輯的表空間中,這個表空間就像黑盒一樣由該存儲引擎自行管理。
③通過使用多版本并發控制(MVCC)來獲得高并發性。
④提供了插入緩沖、二次寫、自適應哈希索引、預讀等高性能和高可用功能。
⑤采用了“聚集”的方式,因此每張表的存儲都是按照主鍵順序進行存放,若沒有顯示的定義主鍵,則該存儲引擎會為每一行生成一個6字節的ROWID,并以此為主鍵。
2、MyISAM存儲引擎
①MyISAM“不支持事務”、表鎖設計、“支持全文索引”,主要面向一些OLAP數據應用。
②MyISAM表由MYD和MYI組成,MYD用來存放數據文件,MYI用來存放索引文件。
③對于MyISAM存儲引擎表,MySQL數據庫只緩存其索引文件,數據文件的緩存交給操作系統本身完成。
3、Maria存儲引擎
①新開發的引擎,設計目標主要是用來取代MyISAM
②支持緩存數據和索引文件,應用了行鎖設計,提供了MVCC功能,支持事務與非事務的安全選項,以及更好的BLOB字符類型的處理性能。
4、NDB存儲引擎
①是一個集群存儲引擎。
②數據全部放在內存中(從MySQL5.1 版本之后可以將非索引文件存放在磁盤),因此主鍵查詢非常快,并且通過天劍NDB數據存儲節點可以線性地提高數據庫性能,是一個高可用、高性能的集群系統。
③NDB存儲引擎的連接操作時在MYSQL數據庫層完成的,而不是在存儲引擎層,所以,復雜的連接操作需要巨大的網絡開銷,因此查詢速度非常慢。如果解決了這個問題,NDB存儲引擎的市場應該是巨大的。
5、Memory存儲引擎
①表中的數據存儲在內存中,如果數據庫重啟或者宕機,數據就會消失。適合存放臨時數據。
②速度雖快,但是只支持表鎖,并發性能差,并且不支持TEXT和BLOB列的類型,最重要的是存儲變長字段(vachar)時事按照定長字段(char)方式進行的,因此浪費內存。
三、連接MySQL的幾種方式
1、TCP\IP
2、命名管道和共享內存
3、UNIX域套接字
總結
以上是生活随笔為你收集整理的mysql 存储引擎接口_MySQL体系结构和存储引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 没有吃完的鱼如何保存?
- 下一篇: linux cmake编译源码,linu