mysql常用的儲存引擎為myisam、innodb、memory、merge,其中innodb提供事務安全表,其他儲存引擎都是非事務安全表。
myisam是mysql的預設儲存引擎。myisam不支援事務、也不支援外來鍵,但其訪問速度快,對事務完整性沒有要求。
innodb儲存引擎提供了具有提交、回滾和崩潰恢復能力的事務安全。但是比起myisam儲存引擎,innodb寫的處理效率差一些並且會占用更多的磁碟空間以保留資料和索引。
memory儲存引擎使用存在記憶體中的內容來建立表。每個memory表只實際對應乙個磁碟檔案。memory型別的表訪問非常得快,因為它的資料是放在記憶體中的,並且預設使用hash索引。但是一旦服務關閉,表中的資料就會丟失掉。
merge儲存引擎是一組myisam表的組合,這些myisam表必須結構完全相同。merge表本身沒有資料,對merge型別的表進行查詢、更新、刪除的操作,就是對內部的myisam表進行的。
myisam表還支援3中不同的儲存格式:
1 靜態表
2 動態表
3 壓縮表
靜態表是預設的儲存格式,靜態表中的字段都是非變長的字段,優點是:儲存非常迅速,容易快取,出現故障容易恢復;缺點是:占用的空間通常比動態表多。(注意: 在儲存時,列的寬度不足時,用空格補足,當時在訪問的時候並不會得到這些空格)
動態表的字段是變長的,優點是:占用的空間相對較少,但是頻繁地更新刪除記錄會產生碎片,需要定期改善效能,並且出現故障的時候恢復相對比較困難。
壓縮表占用磁碟空間小,每個記錄是被單獨壓縮的,所以只有非常小的訪問開支。
mysql支援外來鍵儲存引擎只有innodb,在建立外來鍵的時候,要求附表必須有對應的索引,子表在建立外來鍵的時候也會自動建立對應的索引。
innodb儲存方式為兩種:1 使用共享表空間儲存 2 使用多表空間
memory型別的儲存引擎主要用於那些內容變化不頻繁的**表,或者作為統計操作的中間結果表,便於高效地堆中間結果進行分析並得到最終的統計結果。對memory儲存引擎的表進行更新操作要謹慎,因為資料並沒有實際寫入到磁碟中,所以一定要對下次重新啟動服務後如何獲得這些修改後的資料有所考慮。
merge用於將一系列等同的myisam表以邏輯方式組合在一起,並作為乙個物件引用它。merge表的優點在於可以突破對單個myisam表大小的限制,通過將不同的表分布在多個磁碟上,可以有效的改善merge表的訪問效率。
mysql儲存引擎 mysql儲存引擎簡介
精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...
mysql個儲存引擎 MySQL儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...
mysql儲存引擎模式 mysql儲存引擎
mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...