本頁使用了標題或全文手工轉換

MyISAM

維基百科,自由的百科全書
跳到: 導覽搜尋
MyISAM
開發者 Sun Microsystems
作業系統 跨平台
類型 數據庫引擎
許可協定 GNU General Public License
網站 http://www.mysql.com

MyISAMMySQL的預設數據庫引擎(5.5版之前),由早期的ISAM所改良。雖然效能極佳,但卻有一個缺點:不支援交易處理(transaction)。不過,在這幾年的發展下,MySQL也導入了InnoDB(另一種數據庫引擎),以強化參考完整性並行違規處理機制,後來就逐漸取代MyISAM。

每個MyISAM數據表,皆由儲存在硬碟上的3個檔案所組成,每個檔案都以數據表名稱為主檔名,並搭配不同副檔名區分檔案類型:

  1. .frm--儲存數據表定義,此檔案非MyISAM引擎的一部份。
  2. .MYD--存放真正的數據。
  3. .MYI--儲存索引資訊。

與InnoDB之比較[編輯]

  1. InnoDB可藉由交易記錄檔(Transaction Log)來恢復程式崩潰(crash),或非預期結束所造成的數據錯誤;而MyISAM遇到錯誤,必須完整掃瞄後才能重建索引,或修正未寫入硬碟的錯誤。InnoDB的修復時間,大略都是固定的,但MyISAM的修復時間,則與數據量的多寡成正比。相對而言,隨着數據量的增加,InnoDB會有較佳的穩定性。
  2. MyISAM必須依靠作業系統來管理讀取與寫入的快取,而InnoDB則是有自己的讀寫快取管理機制。(InnoDB不會將被修改的資料分頁立即交給操作系統)因此在某些情況下,InnoDB的數據存取會比MyISAM更有效率。
  3. InnoDB目前並不支援MyISAM所提供的壓縮與terse row formats,所以對硬碟與快取記憶體的使用量較大。因此MySQL從5.0版開始,提供另一個負載較輕的格式,他可減少約略20%的系統負載,而壓縮功能已計劃於未來的新版中推出。
  4. 當操作完全相容ACID(交易)時,雖然InnoDB會自動合併數筆連線,但每次有交易產生時,仍至少須寫入硬碟一次,因此對於某些硬碟或磁碟陣列,會造成每秒200次的交易處理上限。若希望達到更高的效能且保持交易的完整性,就必使用磁碟快取與電池備援。當然InnoDB也提供數種對效能衝擊較低的模式,但相對的也會降低交易的完整性。而MyISAM則無此問題,但這並非因為它比較先進,這只是因為它不支援交易。

相關條目[編輯]

參考連結[編輯]

數據庫管理系統(DBMS) 檢視 · 討論 · 編輯

概念
數據庫 · 數據模型 · 數據庫儲存結構英語Database storage structures · 關係 (數據庫) · 關係模型 · 分散式數據庫 · ACID ( 原子性英語Atomicity (database systems) · 一致性· 隔離性· 永續性英語Durability (database systems) ) · Null值
關係模型 · 數據庫規範化 · 數據庫完整性 · 實體完整性 · 參照完整性英語Referential integrity · 關聯式資料庫管理系統 
主鍵 · 外來鍵 · 代理鍵 · 超鍵 · 候選鍵 

數據庫元件
觸發器 · 視圖 · 數據庫表 · 指標 (數據庫) · 交易記錄檔英語Transaction log · 數據庫交易 · 並行控制 · 樂觀鎖 · 悲觀鎖 · 數據庫索引 
儲存程式 · 數據庫分割英語Partition (database)

SQL
分類: 數據查詢語言(DQL) - 數據定義語言(DDL) - 數據操縱語言(DML) - 數據控制語言(DCL)
指令:SELECT · INSERT · UPDATE · MERGE · DELETE · JOIN · UNION英語Union (SQL) · CREATE · DROP · Begin work · COMMIT · ROLLBACK · TRUNCATE · ALTER
安全: SQL資料隱碼攻擊 · 參數化查詢

數據庫管理系統的實現

實現類型
關聯式資料庫 · 檔案型數據庫 · Deductive · 維度化數據庫 · 階層式 · 圖形數據庫 · NoSQL· 物件數據庫 · 物件關聯式資料庫 · Temporal · XML數據庫

數據庫產品
物件型對比) · 關係型對比

數據庫元件
數據查詢語言 · 查詢最佳化器 · 查詢計劃 · 嵌入式SQL · ODBC · JDBC · OLE DB