首頁  >  文章  >  資料庫  >  mysql和myisam有什麼差別

mysql和myisam有什麼差別

WBOY
WBOY原創
2022-08-25 17:20:592094瀏覽

mysql和myisam的區別是:mysql是一個關係型資料庫管理系統,是建立在關係模型基礎上的資料庫,借助於集合代數等數學概念和方法來處理資料庫中的數據,而myisam是mysql的預設資料庫引擎(5.5版之前),且不支援事務處理。

mysql和myisam有什麼差別

本教學操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql和myisam有什麼差別

myisam

MySQL的預設資料庫引擎

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

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

  • .frm-儲存資料表定義,此檔案非MyISAM引擎的一部分。

  • .MYD-存放真正的資料。

  • .MYI-儲存索引資訊。

與InnoDB之比較

InnoDB可藉由交易記錄檔(Transaction Log)來恢復程式崩潰(crash),或非預期結束所造成的資料錯誤;而MyISAM遇到錯誤,必須完整掃描後才能重建索引,或修正未寫入硬碟的錯誤。 InnoDB的修復時間,大致上都是固定的,但MyISAM的修復時間,則與資料量的多寡成正比。相對而言,隨著資料量的增加,InnoDB會有較佳的穩定性。

MyISAM必須依賴作業系統來管理讀取與寫入的緩存,而InnoDB則是有自己的讀寫快取管理機制。 (InnoDB不會將被修改的資料頁立即交給作業系統)因此在某些情況下,InnoDB的資料存取會比MyISAM更有效率。

InnoDB目前不支援MyISAM所提供的壓縮與terse row formats,所以硬碟與快取的使用量較大。因此MySQL從5.0版開始,提供另一個負載較輕的格式,他可減少約略20%的系統負載,而壓縮功能已專案於未來的新版中推出。

當操作完全相容於ACID(事務)時,雖然InnoDB會自動合併多個連接,但每次有事務產生時,仍至少須寫入硬碟一次,因此對於某些硬碟或磁碟陣列,會造成每秒200次的交易處理上限。若希望達到更高的效能且維持事務的完整性,就必使用磁碟快取與電池備援。當然InnoDB也提供數種對效能衝擊較低的模式,但相對的也會降低交易的完整性。而MyISAM則無此問題,但這並非因為它比較先進,這只是因為它不支援事務。

mysql

MySQL是一個關聯式資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle旗下產品。 MySQL是最受歡迎的關聯式資料庫管理系統之一,在WEB應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關聯式資料庫管理系統) 應用軟體之一。

MySQL是一種關聯式資料庫管理系統,關聯式資料庫將資料保存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。

MySQL所使用的 SQL 語言是用於存取資料庫的最常用標準化語言。 MySQL 軟體採用了雙授權政策,分為社群版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。

由於其社群版的性能卓越,搭配PHP和Apache可組成良好的開發環境。

推薦學習:mysql影片教學

#

以上是mysql和myisam有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn