1. 程式人生 > 資料庫 >MySQL基礎-框架介紹

MySQL基礎-框架介紹

目錄

體系結構

  • 資料庫:物理作業系統檔案或其他形式檔案型別的集合,是按照某種資料模型組織起來並存放在儲存器中的資料集合。
  • 例項:資料庫例項是程式,是位於使用者和作業系統之間的一層資料管理軟體。

Mysql資料庫體系結構圖:

image-20200314154500061

由圖可見,MySQL由主要由以下幾部分組成:

  • 連線池元件:為解決資源的頻繁分配﹑釋放所造成的問題,為資料庫連線建立一個“緩衝池”。
  • 管理服務和工具元件:系統管理和控制工具,例如備份恢復、Mysql複製、叢集等;
  • SQL介面元件:使用者SQL命令介面,進行DML/DDL、儲存過程、檢視、觸發器等操作和管理;
  • 解析器元件:SQL命令傳遞到解析器的時候會被解析器解析和驗證。
  • 優化器元件:SQL語句在查詢之前會使用查詢優化器對查詢進行優化。
  • 緩衝元件:查詢快取,如果查詢快取中有查詢結果,查詢語句可以直接去查詢快取中取資料。
  • 外掛式儲存引擎:儲存引擎是MySql中具體的與檔案打交道的子系統,Mysql的儲存引擎是外掛式的。
  • 物理檔案

儲存引擎

MySQL的儲存引擎是外掛式的,每個儲存引擎都有各自的特點,能根據具體的應用建立不同的儲存引擎表。

MySQL主要有9種儲存引擎,可以通過show engines;語句查詢:

Engine Support Comment Transactions XA Savepoints
MEMORY YES Hash based, stored in memory, useful for temporary tables NO NO NO
MRG_MYISAM YES Collection of identical MyISAM tables NO NO NO
CSV YES CSV storage engine NO NO NO
FEDERATED NO Federated MySQL storage engine
PERFORMANCE_SCHEMA YES Performance Schema NO NO NO
MyISAM YES MyISAM storage engine NO NO NO
InnoDB DEFAULT Supports transactions, row-level locking, and foreign keys YES YES YES
BLACKHOLE YES /dev/null storage engine (anything you write to it disappears) NO NO NO
ARCHIVE YES Archive storage engine NO NO NO

資料庫應用主要分兩類:OLAP(聯機分析處理)和OLTP(聯機事務處理)

OLAP (聯機分析處理)主要特點:

  • 實時性要求不高
  • 資料量大
  • 併發量小

OLTP(聯機事務處理)主要特點:

  • 實時性要求高
  • 數量小
  • 併發高
  • 要求滿足ACID

儲存引擎簡介:

  1. InnoDB

    InnoDB是一個事務型的儲存引擎,支援行級鎖和外來鍵約束。從MySQL5.5.8版本開始,InnoDB是預設儲存引擎。其設計主要面向OLTP的應用。

  2. MyISAM

    MyISAM儲存引擎不支援事務、表鎖,支援全文索引,主要面向OLAP應用。

    MyISAM儲存引擎由MYD和MYI組成,MYD用來存放資料檔案,MYI用來存放索引檔案。此外,MyISAM引擎的另一個與眾不同的地方是它的緩衝池只快取索引檔案。

  3. Memory

    Memory採用的邏輯介質是記憶體,響應速度應該是很快的,但是當資料庫重啟或發生崩潰時資料會丟失。只支援表鎖,併發效能差。

  4. Archive

    Archive引擎只支援INSERT和SELECT操作,支援行鎖,不支援事務。使用zlib演算法將資料行進行壓縮後儲存,壓縮比一般可達1:10。Archive儲存引擎非常適合儲存歸檔資料。Archive儲存引擎使用行鎖來實現高併發的插入操作,但是本身不是事務安全的,其設計目的主要是提供快速插入和壓縮資料功能。

  5. MRG_MYISAM

    Mrg_MyISAM儲存引擎,是一組MyIsam的組合,也就是說,他將MyIsam引擎的多個表聚合起來,但是他的內部沒有資料,真正的資料依然是MyIsam引擎的表中,但是可以直接進行查詢、刪除更新等操作。

  6. CSV

    可以將scv檔案作為MySql的表來使用,但是不支援索引。CSV引擎表所有的欄位都必須為非空的,建立的表有兩個一個是CSV檔案和CSM檔案。

  7. FEDERATED

    Federated儲存引擎是訪問MySQL伺服器的一個代理。

  8. PERFORMANCE_SCHEMA

    MySQL5.5以後新增了一個儲存引擎,就是Performance_Schema,他主要是用來收集資料庫伺服器的效能引數。MySQL使用者不能建立儲存該型別的表。

    他提供了以下的功能:

    • 提供程序等待的詳細資訊,包括鎖、互斥變數、檔案資訊。
    • 儲存歷史的事件彙總資訊,為Mysql伺服器的效能做出詳細的判斷。
    • 對於新增和刪除監控時間點都非常容易,並可以隨意的改變Mysql伺服器的監控週期

    需要在配置檔案my.cnf中進行配置才能開啟。

  9. BLACKHOLE

    “黑洞”儲存引擎,他會丟棄所有的插入的資料,伺服器會記錄下Blackhole表的日誌,所以可以用於複製資料到備份資料庫。

檔案

資料摘抄

《MySQL技術內幕》