MyISAM儲存引擎

2021-09-20 15:15:19 字數 1112 閱讀 3356

支援事務,支援外來鍵,尤其是訪問速度快,對事務完 整性沒有要求或者以select、insert為主的應用基本都可以使用這個引擎來建立表。 

每個myisam在磁碟上儲存成3個檔案,其中檔名和表名都相同,但是副檔名分別為: 

1 .frm(儲存表定義)

2 myd(mydata,儲存資料)

3 myi(myindex,儲存索引) 

資料檔案和索引檔案可以放置在不同的目錄,平均分配io,獲取更快的速度。要指定資料檔案和索引檔案的路徑,需要在建立表的時候通過data directory和index directory語句指定,檔案路徑需要使用絕對路徑。 每個myisam表都有乙個標誌,伺服器或myisamchk程式在檢查myisam資料表時會對這個標誌進行設定。myisam表還有乙個標誌用來表明 該資料表在上次使用後是不是被正常的關閉了。如果伺服器以為當機或崩潰,這個標誌可以用來判斷資料表是否需要檢查和修復。如果想讓這種檢查自動進行,可以 在啟動伺服器時使用–myisam-recover現象。這會讓伺服器在每次開啟乙個myisam資料表是自動檢查資料表的標誌並進行必要的修復處理。 myisam型別的表可能會損壞,可以使用check table語句來檢查myisam表的健康,並用repair table語句修復乙個損壞到myisam表。 

myisam的表還支援3種不同的儲存格式: 

靜態(固定長度)表 

動態表 

壓縮表 

其中靜態表是預設的儲存格式。靜態表中的字段都是非變長字段,這樣每個記錄都是固定長度的,這種儲存方式的優點是儲存非常迅速,容易快取,出現故障容易恢 復;缺點是占用的空間通常比動態表多。靜態表在資料儲存時會根據列定義的寬度定義補足空格,但是在訪問的時候並不會得到這些空格,這些空格在返回給應用之 前已經去掉。同時需要注意:在某些情況下可能需要返回欄位後的空格,而使用這種格式時後面到空格會被自動處理掉。 

動態表包含變長字段,記錄不是固定長度的,這樣儲存的優點是占用空間較少,但是頻繁到更新刪除記錄會產生碎片,需要定期執行optimize table語句或myisamchk -r命令來改善效能,並且出現故障的時候恢復相對比較困難。 

壓縮表由myisamchk工具建立,佔據非常小的空間,因為每條記錄都是被單獨壓縮的,所以只有非常小的訪問開支。

本文**: 

linux起點

MyISAM儲存引擎

myisam是預設儲存引擎。它基於更老的isam 但有很多有用的擴充套件。注意mysql 5.1不支援isam 每個myisam在磁碟上儲存成三個檔案。第乙個檔案的名字以表的名字開始,副檔名指出檔案型別。frm檔案儲存表定義。資料檔案的擴充套件名為.myd mydata 索引檔案的副檔名是.myi ...

MyISAM儲存引擎

支援事務,支援外來鍵,尤其是訪問速度快,對事務完 整性沒有要求或者以select insert為主的應用基本都可以使用這個引擎來建立表。每個myisam在磁碟上儲存成3個檔案,其中檔名和表名都相同,但是副檔名分別為 1 frm 儲存表定義 2 myd mydata,儲存資料 3 myi myinde...

MyISAM儲存引擎

myisam是mysql的預設儲存引擎。myisam不支援事物,外來鍵,其優點的是快。myisam在磁碟上儲存為3個檔案,分別是 frm 儲存定義 myd mydate,儲存資料 myi myindex,儲存引擎 資料檔案和索引檔案可以放置在不同的目錄下。myisam表的索引檔案和資料檔案可以放置到...