一、存儲引擎
1、InnoDB
默認的MySQL存儲引擎,提供了具有提交、回滾和崩潰恢復能力的食物安全。支持的是行鎖、外鍵、事務。
會將自增id記錄在內存中,所以在進行刪除操作后任以之前最大id自增,單重啟后則是根據表現有的最大id計算自增,丟失內存中記錄的歷史最大id。
2、MyISAM
ISAM是Indexed Sequential Access Method (有索引的順序訪問方法) 的縮寫,不是事務安全的,不支持外鍵。由于結構簡單,支持大量select、insert效率上優(yōu)于Innodb,MyISAM是表鎖,使用小型應用
自增id都是記錄在文件中,重啟不影響歷史最大id
每個MyISAM在磁盤上存儲三個文件。文件名與表名相同,擴展名為.frm(表存儲定義).MYD(MYDATA,存儲數據)、.MYI(MYIndex,存儲索引)
3、InnoDB與MyISAM區(qū)別
MyISAM是5.1版本前的默認引擎,支持全文檢索、壓縮、空間函數等,但不支持事務和行級鎖,一般用于有大量查詢但少量插入的場景使用,不支持外鍵,并且索引和數據時分開存儲的
InnoDB是基于聚簇索引建立的,支持事務、行級鎖、外鍵,并通過MVCC來支持高并發(fā),索引和數據時存在一起的
二、聚簇索引和非聚簇索引
1、聚簇索引和非聚簇索引的概念
(1)、聚簇索引(也叫聚集索引)就是將索引和數據存儲放在了一起,如InnoDB存儲引擎這種B+樹結構
(2)、非聚簇索引就是將索引和數據非開存儲;
2、查找方式
非聚簇索引如MyISAM這種通過索引查到的是數據存儲的空間地址,之后去獲取數據。