InnoDB與Myisam的主要區別

2021-06-29 03:45:58 字數 973 閱讀 8218

1、 事務處理

innodb支援事務功能,myisam 不支援。

myisam的執行速度更快,效能更好。

2、鎖機制不同

innodb 支援行級鎖,myisam為表級鎖。

注意:如果查詢不是通過索引訪問的,那就是 通過簡單的遍歷所有行得到目標的,那就會給整個表加上鎖

如: update table set num = 10 where username like "%test%";

不走索引的情況:

3、查詢表的行數不同

myisam:

select count(*) fromtable,myisam只要簡單的讀出儲存好的行數,注意的是,當count(*)語句包含  where條件時,兩種表的操作是一樣的

innodb

:innodb中不儲存表的具體行數,也就是說,執行select count(*) fromtable時,innodb要掃瞄一遍整個表來計算有多少行

4、物理結構不同

myisam :每個myisam在磁碟上儲存成三個檔案。第乙個檔案的名字以表的名字開始,副檔名指出檔案型別。

.frm檔案儲存表定義。

資料檔案的擴充套件名為.myd (mydata)。

索引檔案的副檔名是.myi(myindex)

innodb:

基於磁碟的資源是innodb表空間資料檔案和它的日誌檔案

5.

innodb不支援fulltext型別的索引(5.6版本已經支援)

6.舊版本裡對於auto_increment型別的字段,innodb中必須包含只有該字段的索引,但是在myisam表中,可以和其他字段一起建立聯合索引

MyISAM與InnoDB的異同

myisam與innodb的異同 一 引言 儲存引擎是mysql三層架構中的最下面的一層,負責資料的儲存和提取,也是mysql的核心所在。儲存引擎提供統一的api供上層呼叫。雖然對上層提供的api是統一的,但是不同的儲存引擎有不同的實現方式。每個儲存引擎都有各自的側重點,從而各有優缺點。在mysql...

MyISAM與InnoDB 的區別

innodb支援事務,myisam不支援,對於innodb每一條sql語言都預設封裝成事務,自動提交,這樣會影響速度,所以最好把多條sql語言放在begin和commit之間,組成乙個事務 innodb支援外來鍵,而myisam不支援。對乙個包含外來鍵的innodb表轉為myisam會失敗 inno...

InnoDB與MyISAM的區別

1 儲存結構上不同 myisam非聚簇索引,資料在磁碟上分成3個資料檔案存放,frm字尾檔案是表結構檔案,myd字尾是表資料檔案,myi是表索引檔案。innodb聚簇索引,資料 表結構 資料 索引 都存放在乙個資料檔案 也可能多個,但是是不同的表空間 2 儲存空間不同 myisam可被壓縮,儲存空間...