MyIASM,InnoDB主要區別: 1.MyIASM是非事物安全的,InnoDB是事物安全的。 事物安全的特點為更安全,遇到問題會自動恢復或從備份加事物日誌回覆,如果更新失敗,你的所有改變都變回原來。 非事物安全的優點為更快,所需的磁碟空間更小,執行更新時需要的記憶體更小,但是所有發生的改變都是永久 ...
MyISAM,InnoDB主要區別:
1.MyISAM是非事物安全的,InnoDB是事物安全的。
事物安全的特點為更安全,遇到問題會自動恢復或從備份加事物日誌回覆,如果更新失敗,你的所有改變都變回原來。
非事物安全的優點為更快,所需的磁碟空間更小,執行更新時需要的記憶體更小,但是所有發生的改變都是永久的。
2.MyISAM鎖的粒度是表級的,InnoDB支持行級鎖以及表級,預設情況下是採用行級鎖。
資料庫引擎具有多粒度鎖定,允許一個事務鎖定不同類型的資源。 為了儘量減少鎖定的開銷,資料庫引擎自動將資源鎖定在適合任務的級別。 鎖定在較小的粒度(例如行)可以提高併發度,但開銷較高,因為如果鎖定了許多行,則需要持有更多的鎖。 鎖定在較大的粒度(例如表)會降低了併發度,因為鎖定整個表限制了其他事務對錶中任意部分的訪問。 但其開銷較低,因為需要維護的鎖較少。
3.MyISAM支持全文類型索引,InnoDB不支持(之前)。
mysql索引有四種類型:主鍵索引、唯一索引、普通索引和全文索引。通過給欄位添加索引可以提高數據的讀取速度,提高項目的併發能力和抗壓能力。索引優化是mysql中的一種優化方式。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。
主鍵索引: 主鍵是一種唯一性索引,但它必須指定為PRIMARY KEY,每個表只能有一個主鍵。
唯一索引: 索引列的所有值都只能出現一次,即必須唯一,值可以為空。
普通索引 : 基本的索引類型,值可以為空,沒有唯一性的限制。
全文索引: 全文索引的索引類型為FULLTEXT。全文索引可以在varchar、char、text類型的列上創建。可以通過ALTER TABLE或CREATE INDEX命令創建。對於大規模的數據集,通過ALTER TABLE(或者CREATE INDEX)命令創建全文索引要比把記錄插入帶有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之後支持了全文索引。
4.InnoDB支持外鍵,MyISAM不支持。
應用場景(簡單概括):
MyISAM管理非事物表,提供高速存儲和檢索以及全文搜索的能力,如果在應用中執行大量的select操作,應選用MyISAM。
InnoDB用於事物處理,具有ACID(原子性,一致性,隔離性,持久性)事物支持等特性,如果在應用中大量使用insert和update操作,應選用InnoDB。
當然具體的選用還是要看具體的項目需求來定,不能簡單的只看這幾個方面。