MySQL理解表型別和儲存過程

2019-10-16 22:57:22

在本教學中,您將學習各種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檔案,了解它們之間的區別: /

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