MYSQL 體系結構和引擎

2021-08-20 05:11:57 字數 1220 閱讀 7812

資料庫例項和資料庫的區別:資料庫例項是應用程式,資料庫是檔案集合

mysql資料庫是單程序多執行緒的資料庫

linux下啟動資料庫命令:./mysql_safe &

mysql由幾部分組成:連線池元件、管理服務和工具元件、sql介面元件、查詢分析器元件、優化器元件、快取元件、外掛程式式儲存引擎、物理檔案

各種引擎的對比:

1.innodb每張表的資料都按照主鍵的順序進行存放,如果沒用顯式地指定主鍵,innodb儲存引擎會為每一行生成乙個6位元組的rowid,並以此為主鍵。

2.myisam引擎是官方提供的資料庫引擎,不支援事務,使用表鎖和全文索引,除windows版本外,其他都是作為預設儲存引擎,可以使用myisampack命令壓縮和解壓資料檔案,壓縮後的資料檔案是唯讀的,在mysql5.0之前的版本myisam預設支援4g大小的表,之後的版本預設支援最大256t的單錶資料;對於myisam引擎,mysql資料庫只快取索引檔案,資料檔案快取交於系統本身來完成

3.ndb引擎:是一種記憶體儲存性引擎

4.memory引擎:也是一種記憶體儲存性引擎,預設使用雜湊索引,而不是熟悉的b+索引,只支援表鎖,併發效能低,不支援blob和text型別字段設定,儲存變長資料是按照定長字段(char)的方式進行的,因此會浪費記憶體

5.archive儲存引擎:只支援insert和select操作,使用zlib演算法進行壓縮,壓縮比率一般可達1:10,使用行鎖來實現高併發插入操作,但本身不是

事務安全的引擎,設計目標主要是提供高速插入和壓縮功能,便於歸檔。

6.maria引擎:主要設計用來替代myisam引擎作為mysql的預設引擎,其特點是:快取資料和索引檔案,行鎖設計,提供mvcc功能,支援事務和非事務的安全選項支援,以及對blob型別欄位的處理效能提公升

mysql連線:

tcp/ip: 當通過tcp/ip連線mysql例項時,mysql會首先檢查一張許可權檢視,即mysql資料庫下的user表,%代表允許任何主機連入

命名管道和共享記憶體:在mysql資料庫中,需配置--enable-named-pipe選項,在mysql4.1之後的版本還提供共享記憶體的連線方式,客戶端需使用-protocl=memory選項

unix網域名稱套接字:在linux和unix環境下,可以使用unix域套接字。unix域套接字其實不是乙個網路協議,所以只能在mysql客戶端和mysql例項在同一臺伺服器上的情況使用,配置:-socket=/tmp/mysql.sock,連線命令:mysql -u.. -s /tmp/mysql.sock

MySQL儲存引擎體系結構

mysql採用外掛程式式儲存體系結構。提供到儲存引擎有 myisam 預設的mysql外掛程式式儲存引擎,它是在web,資料倉儲和其他應用環境下最常用的儲存引擎之一。通過更改storage engine配置變數能夠方便地更改mysql伺服器的預設儲存引擎。innodb 用於事物處理應用程式,具有眾多...

MySQL 儲存引擎體系結構

最上層是一些客戶端和連線服務,包含本地 sock 通訊和大多數基於客戶端 服務端工具實現的類似於 tcp ip 的通訊。主要完成一些類似於連線處理 授權認證 及相關的安全方案。在該層上引入了執行緒池的概念,為通過認證安全接入的客戶端提供執行緒。同樣在該層上可以實現基於 ssl 的安全鏈結。伺服器也會...

MySQL (一)MySQL 體系結構和儲存引擎

在mysql資料庫中,例項與資料庫的關係通常是一 一對應的,即乙個例項對應乙個資料庫,乙個資料庫對應乙個例項。但是,在集群情況下可能存在乙個資料庫被多個例項使用的情況。mysql被設計為乙個單程序多執行緒的資料庫,這點與sql server比較類似,但與oracel多程序的架構有所不同 oracel...