mysql資料庫儲存引擎

2021-10-07 09:13:31 字數 1574 閱讀 5120

我們在《mysql儲存引擎有哪些》一節中介紹了 mysql 中幾種主要的儲存引擎以及它們的使用特性,本節將介紹如何根據不同的應用場景去選擇合適的儲存引擎。

在使用 mysql 資料庫管理系統時,選擇乙個合適的儲存引擎是乙個非常複雜的問題。不同的儲存引擎都有各自的特性、優勢和使用的場合,正確的選擇儲存引擎可以提高應用的使用效率。

為了能夠正確地選擇儲存引擎,必須掌握各種儲存引擎的特性。下面重點介紹幾種常用的儲存引擎,它們對各種特性的支援如下表所示。

mysql儲存引擎特性彙總和對比 特性

myisam

innodb

memory

儲存限制有支援

有事務安全

不支援支援

不支援鎖機制

表鎖行鎖

表鎖b樹索引

支援支援

支援雜湊索引

不支援不支援

支援全文索引

支援不支援

不支援集群索引

不支援支援

不支援資料快取

支援支援

索引快取

支援支援

支援資料可壓縮

支援不支援

不支援空間使用低高

n/a記憶體使用低高

中等批量插入速度高低

高支援外來鍵

不支援支援

不支援表中主要介紹了 myisam、innodb 和 memory 三種儲存引擎特性的對比。下面詳細介紹這 3 個儲存引擎的應用場合並給出相應的建議。

1) myisam

在 mysql 5.1 版本及之前的版本,myisam 是預設的儲存引擎。

myisam 儲存引擎不支援事務和外來鍵,所以訪問速度比較快。如果應用主要以讀取和寫入為主,只有少量的更新和刪除操作,並且對事務的完整性、併發性要求不是很高,那麼選擇 myisam 儲存引擎是非常適合的。

myisam 是在 web 資料倉儲和其他應用環境下最常使用的儲存引擎之一。

2) innodb

mysql 5.5 版本之後預設的事務型引擎修改為 innodb。

innodb 儲存引擎在事務上具有優勢,即支援具有提交、回滾和崩潰恢復能力的事務安裝,所以比 myisam 儲存引擎占用更多的磁碟空間。

如果應用對事務的完整性有比較高的要求,在併發條件下要求資料的一致性,資料操作除了插入和查詢以外,還包括很多的更新、刪除操作,那麼 innodb 儲存引擎是比較合適的選擇。

innodb 儲存引擎除了可以有效地降低由於刪除和更新導致的鎖定,還可以確保事務的完整提交(commit)和回滾(rollback),對於類似計費系統或者財務系統等對資料準確性要求比較高的系統,innodb 都是合適的選擇。

3) memory

memory 儲存引擎將所有資料儲存在 ram 中,所以該儲存引擎的資料訪問速度快,但是安全上沒有保障。

memory 對錶的大小有限制,太大的表無法快取在記憶體中。由於使用 memory 儲存引擎沒有安全保障,所以要確保資料庫異常終止後表中的資料可以恢復。

如果應用中涉及資料比較少,且需要進行快速訪問,則適合使用 memory 儲存引擎。

總結不同應用的特點是千差萬別的,選擇適應儲存引擎才是最佳方案也不是絕對的,這需要根據實際應用進行測試,從而得到最適合的結果。

Mysql資料庫儲存引擎

儲存引擎是什麼?mysql中的資料用各種不同的技術儲存在檔案 或者記憶體 中。這些技術中的每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並且最終提供廣泛的不同的功能和能力。通過選擇不同的技術,你能夠獲得額外的速度或者功能,從而改善你的應用的整體功能。例如,如果你在研究大量的臨時資料,你也許需要使...

資料庫 mysql儲存引擎

mysql常用的四種引擎的介紹 1 myisam儲存引擎 不支援事務 也不支援外來鍵,優勢是訪問速度快,對事務完整性沒有要求或者以select,insert為主的應用基本上可以用這個引擎來建立表,適合寫多的情況。frm儲存當前資料表的結構,myd儲存當前表的資料,myi儲存當前資料表的索引 支援表級...

MySQL資料庫儲存引擎

1 mysql中的資料用各種不同的技術儲存檔案中,每一種技術都使用不同的儲存機制 索引技巧 鎖定水平並最終提供不同的功能和能力,這些不同的技術以及配套的功能在mysql中稱為儲存引擎 2 儲存引擎時mysql將資料儲存在檔案系統中的儲存方式或者儲存格式 3 mysql常用的儲存引擎 1 myisam...