介紹MySQL儲存引擎及應用

2021-10-12 00:24:16 字數 1594 閱讀 9370

本文介紹mysql幾種儲存引擎(表型別),即mysql的底層儲存特性,利用這些特性可最大化提公升資料庫效能。

mysql體哦國內下列幾種儲存引擎:

每種型別都有其優劣勢。關鍵需要理解每種儲存引擎特性並選擇最適合一種建立表以提公升資料庫效能。下面簡要介紹每種儲存引擎及其特性,讓你能夠決定什麼場景選擇哪種型別引擎。

myisam 擴充套件之前的 isam 儲存引擎。myisam 表在壓縮和速度方便進行了優化,可跨平台和作業系統進行移植。

myisam 表最大可達256tb, 非常大。另外myisam 錶可被壓縮為唯讀表以節省空間。啟動時mysql 檢查myisam 表問題,甚至能修復一些錯誤。myisam 表不是事務安全的.在 mysql 5.5版本之前,建立表時的預設儲存引擎是 myisam 型別 。從5.5版本開始, mysql 使用 innodb 型別作為預設儲存引擎。

innodb表完全支援acid和事務,它對效能也進行了優化。innodb表支援外來鍵,提交、回滾、前滾動操作。innodb表大小可達64tb。

與myisam一樣,innodb也能跨平台和作業系統進行移植。如果需要mysql在啟動時也檢查和修復innodb表,

merge 表是合併多個類似結構的myisam表形成的單個虛擬表,merge 儲存引擎也稱為mrg_myisam 引擎。merge 表沒有自己的索引,其使用其組成表的索引代替。

當連線多個表查詢時,使用merge 表可以提公升效能。mysql僅允許在merge 表上執行 select, delete, update 和 insert 操作。如果使用 drop table 語句刪除merge 表,僅刪除merge 規範,底層表不受影響。

記憶體表儲存在記憶體中使用hash索引,因此比 myisam 表速度更快。記憶體表資料的生命週期取決於資料庫伺服器的正常執行時間 。記憶體儲存引擎以前被稱為堆。

歸檔儲存引擎允許將大量記錄儲存為壓縮格式以節省磁碟空間。歸檔儲存引擎在插入記錄時壓縮記錄,在讀取記錄時使用zlib庫解壓記錄。

歸檔表只允許insert 和 select語句。歸檔表不支援索引,因此讀取行需要進行全表掃瞄。

csv儲存引擎以逗號分隔值(csv)檔案格式儲存資料。csv表為將資料遷移到非sql應用程式(如excel軟體)提供了一種方便的方法。

csv表不支援null資料型別。此外讀操作需要全表掃瞄。

federated儲存引擎允許管理遠端mysql伺服器資料,而無需使用集群或複製技術,本地federated表不儲存任何資料。當從本地federated表查詢資料時,資料將自動從遠端federated表提取。

上節描述了不同儲存引擎,建立表時根據應用場景選擇不同儲存引擎。建立表的語法如下:

create table [if not exists] table_name(

column_1_definition,

column_2_definition,

...,

table_constraints

) engine=storage_engine;

其中engine=storage_engine部分是可選的。我們可以使用上述儲存引擎中一種,如果不顯示指定,預設儲存引擎為innodb 。

本文我們學習mysql不同儲存引擎或表型別,並介紹建立表時如何指定不同儲存型別。

mysql儲存引擎介紹 MySQL儲存引擎簡單介紹

mysql使用的是外掛程式式儲存引擎。主要包含儲存引擎有 myisam。innodb,ndb cluster,maria。falcon,memory,archive,merge。federated。當中最為廣泛的是myisam 和innodb兩種儲存引擎,所以接下來對它們做簡介。myisam 儲存引...

mysql儲存引擎介紹 MySQL儲存引擎介紹

toc innodb儲存引擎 其特點十行鎖設計 支援危機,並支援型別與oracle的非鎖定讀,即預設讀取操作不會產生鎖。innodb通過使用多版本併發控制 mvcc 來獲取高併發性,並且實現了sql標準的4種隔離,預設為repeatable級別。同時使用一種被稱為next keylocking的策略...

MySQL儲存引擎介紹

1.mysql儲存引擎對比 如上圖所示,為幾種常見的儲存引擎的對比,當然還有像csv儲存引擎 不支援索引 和blackhole黑洞引擎 寫入的資料都會消失,一般用作資料複製的中繼 等,但myisam和innodb引擎是最常見的,myisam適用於事務的處理不多的情況,innodb適用於事務處理比較多...