Mysql技術內幕InnoDB儲存引擎讀書筆記--《一》Mysql體系結構和儲存引擎

FreeeLinux發表於2017-06-30

1.1定義資料庫和例項

  • 資料庫:物理作業系統檔案或其他形式檔案型別的集合。在Mysql中,資料庫檔案可以使frm、myd、myi、ibd結尾的檔案。當使用NDB儲存引擎時,資料庫的檔案可能不是作業系統的檔案,而是存放於記憶體之中的檔案,但是定義仍然不變。
  • 資料庫例項:由資料庫後臺程式/執行緒以及一個共享記憶體區組成。共享記憶體可以被執行的後臺程式/執行緒共享。需要牢記的是,資料庫例項才是整整用來運算元據庫檔案的。

mysql啟動例項時,Mysql資料庫會去讀取配置檔案my.cnf根據配置檔案的引數來啟動資料庫例項。

1.2Mysql體系結構、

Msqy由一下幾部分組成:

-連線池元件
-管理服務和工具元件
-sql介面元件
-查詢分析器元件
-優化器元件
-緩衝(cache)元件
-外掛式儲存引擎
-物理檔案

1.3Mysql表儲存引擎

InnoDB儲存引擎支援失誤,主要面向線上失誤處理(OLTP)方面的應用。其特點是行鎖設計、支援外來鍵,並支援類似Oracle的非鎖定讀,即預設情況下讀取操作不會產生鎖。

對於表中資料的儲存,InnoDB儲存引擎採用了聚集(clustered)的方式,每張表的儲存都按主鍵的順序存放,如果沒有顯示地在表定義時制定主鍵,Innodb儲存引擎會為每一行生成一個6位元組的ROWID,並以此作為主鍵。

MyISAM儲存引擎特點是不支援事務、表鎖和全文索引。MyISAM儲存引擎表由MYD和MYI組成,MYD用來存放資料檔案,MYI用來存放索引檔案。

對於MyISAM儲存引擎表,Mysql資料庫只快取其索引檔案,資料檔案的快取交由作業系統本身來完成。

Memory儲存引擎,將表中的資料存放在記憶體中,如果資料庫重啟或發生崩潰,表中的資料都將消失。類似於記憶體資料庫。

Mysql5.6之後InnoDB也已經支援全文索引。

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

通過show engines 命令可檢視當前資料庫支援的所有引擎。

主要找到MyISAM不支援事務,InnoDB支援事務就可以了。

1.5連線Mysql

select host, user, password from user 可以查用所有的使用者許可權資訊。

如果客戶端和Mysql服務端連線不在同一臺機器上,那麼使用socket連線。如果在同一臺機器上,那麼在windows下可使用命名管道和共享記憶體,在linux環境下可使用unix域套接字。

相關文章