程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 【mysql】MyISAM表的存儲格式

【mysql】MyISAM表的存儲格式

編輯:MySQL綜合教程

【mysql】MyISAM表的存儲格式   MyISAM支持三種不同的存儲格式:固定格式,動態格式,已壓縮格式(只能使用myisampack工具來創建)。   www.2cto.com   靜態表特征(固定格式) 靜態格式是MyISAM表的默認存儲格式。當表不包含變量長度列(VARCHAR, BLOB, 或TEXT)時,使用這個格式。每一行用固定字節數存儲。靜態格式是三種存儲格式中最簡單和最安全的,同時也是最快的ondisk格式。 基本特征:     (1)CHAR列對列寬度為空間填補。     (2)快速。     (3)容易緩存。     (4)由於每個記錄位置固定,崩潰後容易重建。(5)無必要重新組織,通常比動態表需要更大的磁盤空間。   動態表特征(動態格式) 如果一個MyISAM表包含任何可變長度 列(VARCHAR, BLOB或TEXTDynamic),或者如果一個表被用ROW_FORMAT=DYNAMIC選項來創建,動態存儲格式被使用。   www.2cto.com   基本特征:     (1)除了長度少於4的列之外,所有的字符串列存儲為動態。     (2)每個記錄前存儲一個位圖,該位圖表明哪一列包含空字符串(對於字符串列)或者0(對於數字列),但並不包括包含NULL值的列。而非空字符串列,則會被存為一個長度字節加字符串的內容。     (3)動態格式表在崩潰後要比靜態格式表更難重建,因為一個記錄可能被分為多個碎片且鏈接(碎片)可能被丟失。     (4)每個記錄僅使用必需大小的空間。盡管如此,如果一個記錄變大,它就按需要被分開成多片,造成記錄碎片的後果。比如,你用擴展行長度的信息更新一行,該行就變得有碎片。在這種情況下,你可以時不時運行OPTIMIZE TABLE或myisamchk -r來改善性能。可使用myisamchk -ei來獲取表的統計數據。   已壓縮表特征 MySQL分發版本裡默認包含myisampack工具,已壓縮存儲格式是由它創建的只讀格式。 壓縮表有下列特征:     (1)壓縮表占據很小的磁盤空間,最小化了磁盤用量。     (2)每個記錄被單獨壓縮,訪問開支小。     (3)可以處理固定長度或動態長度記錄。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved