選擇合適的儲存引擎
儲存引擎的使用可以根據具體業務,組合使用多種儲存引擎,以達到更好的效能,以下提供適用方案僅供參考,使用哪種儲存引擎並不是絕對的,具體要看實際情況。 簡單描述常用儲存引擎的適用環境(myisam,innodb,memory,merge)
-
MyISAM: 1)適用情況:預設的mysql外掛式儲存引擎,應用以讀和插入為主,較少的更新和刪除操作,且對事務的完整性和併發性要求不高預設的mysql外掛式儲存引擎,應用以讀和插入為主,較少的更新和刪除操作,且對事務的完整性和併發性要求不高 2)使用場景:myisam在web,資料倉儲和其他應用環境下是最常使用的儲存引擎之一。
-
InnoDB: 1)作用:innodb可以有效降低刪除、更新導致的鎖定;確保事務的完整提交和回滾;用於事務處理應用程式,支援外來鍵; 2)適用情況:應用對事務的完整性有比較高的要求,在併發條件下要求事務的一致性,資料操作除了插入和查詢外,還包括很多更新和刪除; 3)適用場景:類似計費系統或者財務系統等對資料準確性要求較高的系統,選擇innidb比較合適。
-
MEMORY: 1)優點:將所有資料儲存在ram中,在需要快速定位記錄和其他類似資料的環境下,可提供極快的訪問。 2)缺陷:對錶的大小有限制,太大的表無法快取在記憶體中,其次要確保表的資料可以恢復,資料庫異常終止後表中的資料是可以恢復的 3)適用情況:memory表通常用來更新不太頻繁的小表,用以快速得到訪問效果。
-
MERGE: 1)適用情況:將一系列等同的myisam表以邏輯方式組合在一起,並作為一個物件引用他們。 2)優點:可以突破對單個myisam表大小的限制;且通過將不同的表分佈在多個磁碟上,可以有效改善merge表的訪問效率; 3)適用場景:諸如資料倉儲等VLDB環境十分適合。 正確選擇儲存引擎對改善應用的效率可以起到事半功倍的效果,選擇好儲存引擎,還需要正確選擇表中資料型別,後續會補發如何選擇合適的資料型別。