天天看點

MyISAM存儲引擎

    支援事務,支援外鍵,尤其是通路速度快,對事務完 整性沒有要求或者以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起點

      本文轉自Tenderrain 51CTO部落格,原文連結:http://blog.51cto.com/tenderrain/1601724,如需轉載請自行聯系原作者

繼續閱讀