mysql引擎之MyISAM與InnoDB

2021-09-29 17:30:09 字數 520 閱讀 3278

在mysql中,支援幾種引擎,其中包括myisam與innodb,兩者皆採用b+tree的資料結構,樹+鍊錶

myisam:

索引和資料是分開的,也叫非聚集索引,不管是以自增id作為索引還是以其他作為索引,最下層的葉子節點存放的是乙個實體地址,通過這個實體地址找到需要的資料

索引和資料是分開的,也叫聚集索引,如果是採用自增id作為索引,那麼最下層的葉子節點存放的是真實資料,如果是採用其他的索引,那麼最下層的葉子節點存放的是主鍵id(通過索引找到主鍵id,再通過主鍵id找到真實資料,這就是為什麼推薦用自增主鍵作為索引。如果某個表是innodb引擎,那麼表裡面的資料所分配的是記憶體空間是連續的,這樣採用自增id作為索引,查詢效率更高,因為他查詢的是某個範圍裡面的)

MySQL儲存引擎之MyISAM與Innodb

1 mysql5.5之前版本預設儲存引擎 2 myisam是大部分系統表和臨時表使用的儲存引擎,這裡的臨時表是指在排序 分組等操作中,當數量超過一定的大小之後,由查詢優化器建立的臨時表 3 myisam儲存引擎會將表儲存在兩個系統檔案中,乙個是資料檔案,以myd為副檔名 另乙個是索引檔案,以myi為...

Mysql 儲存引擎之 MyISAM儲存引擎

myisam是預設儲存引擎。每個myisam在磁碟上儲存成三個檔案。frm檔案儲存表定義 myd檔案儲存資料 myi檔案儲存索引。要明確表示你想要用乙個myisam 請用engine表選項指出來 create table test myisam id int engine myisam 2 如下是m...

MySQL常用儲存引擎之MyISAM

1 mysql5.5之前版本使用的預設儲存引擎 2 myisam儲存引擎會將表存在兩個檔案系統中 myd和.myi結尾 副檔名 3 特性 併發性與鎖級別 表級別的鎖,併發性不足 表損壞修復 存在資料丟失 支援的索引型別 支援資料壓縮 myisampack b f table name.myi,會生成...