MySQL儲存引擎

2021-09-23 06:17:18 字數 1477 閱讀 2582

外掛程式式儲存引擎是mysql資料庫最重要的特性之一,使用者可以根據應用的需要選擇如何儲存和索引資料,是否使用事物等。

mysql支援的儲存引擎包括myisaminnodb、bdb、memory、merge、example等等,其中innodb和bdb提供事務安全表,其他儲存引擎都是非事務安全表。

預設情況下,建立新錶如果不制定儲存引擎,將使用預設的myisam,當然也可以修改預設設定。

myisam是mysql的預設儲存引擎,不支援事務、也不支援外來鍵。優點是訪問的速度塊,對事務完整性沒有要求或者以select、insert為主的應用基本上都可以使用這個引擎來建立表。

myisam 的表又支援 3 種不同的儲存格式,分別是:

其中,靜態表是預設的儲存格式。靜態表中的字段都是非變長字段,這樣每個記錄都是固定長度的,這種儲存方式的優點是儲存非常迅速,容易快取,出現故障容易恢復;缺點是占用的空間通常比動態表多。靜態表的資料在儲存的時候會按照列的寬度定義補足空格,但是在應用訪問的時候並不會得到這些空格,這些空格在返回給應用之前已經去掉。但是也有些需要特別注意的問題,如果需要儲存的內容後面本來就帶有空格,那麼在返回結果的時候也會被去掉,開發人員在編寫程式的時候需要特別注意,因為靜態表是預設的儲存格式,開發人員可能並沒有意識到這一點,從而丟失了尾部的空格。

innodb 儲存引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是對比 myisam的儲存引擎,innodb 寫的處理效率差一些並且會占用更多的磁碟空間以保留資料和索引。

1、自動增長列

innodb 表的自動增長列可以手工插入,但是插入的值如果是空或者 0,則實際插入的將是自動增長後的值。

對於 innodb 表,自動增長列必須是索引。如果是組合索引,也必須是組合索引的第一列,但是對於 myisam 表,自動增長列可以是組合索引的其他列,這樣插入記錄後,自動增長列是按照組合索引的前面幾列進行排序後遞增的。

2、外來鍵約束

mysql 支援外來鍵的儲存引擎只有 innodb,在建立外來鍵的時候,要求父表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引

memory 儲存引擎使用存在記憶體中的內容來建立表。每個 memory 表只實際對應乙個磁碟檔案,格式是.frm。memory 型別的表訪問非常得快,因為它的資料是放在記憶體中的,並且預設使用 hash 索引,但是一旦服務關閉,表中的資料就會丟失掉。

在選擇儲存引擎時,應根據應用特點擊擇合適的儲存引擎,對於複雜的應用系統可以根據實際情況選擇多種儲存引擎進行組合。

下面是常用儲存引擎的適用環境。

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...

mysql個儲存引擎 MySQL儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...

mysql儲存引擎模式 mysql儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...