1. 程式人生 > 資料庫 >mysql 儲存引擎分類和事務隔離級別

mysql 儲存引擎分類和事務隔離級別

mysql 儲存引擎分類

 

myisam和innodb的區別

 

1. InnoDB支援事務,MyISAM不支援,對於InnoDB每一條SQL語言都預設封裝成事務,自動提交,這樣會影響速度,所以最好把多條SQL語言放在begin和commit之間,組成一個事務;

2. InnoDB支援外來鍵,而MyISAM不支援。對一個包含外來鍵的InnoDB錶轉為MYISAM會失敗;

3. InnoDB是聚集索引,資料檔案是和索引綁在一起的,必須要有主鍵,通過主鍵索引效率很高。但是輔助索引需要兩次查詢,先查詢到主鍵,然後再通過主鍵查詢到資料。因此,主鍵不應該過大,因為主鍵太大,其他索引也都會很大。而MyISAM是非聚集索引,資料檔案是分離的,索引儲存的是資料檔案的指標。主鍵索引和輔助索引是獨立的。

4. InnoDB不儲存表的具體行數,執行select count(*) from table時需要全表掃描。而MyISAM用一個變數儲存了整個表的行數,執行上述語句時只需要讀出該變數即可,速度很快;

5. MyISAM支援全文索引,查詢效率上MyISAM要高,從5.6開始Innodb也支援全文索引;


資料庫隔離級別有四種,分別是:

1、“Read Uncommitted”未提交讀;

2、“Read Committed”提交讀;

3、“Repeated Read”可重複讀;

4、“Serializable”序列讀。