ISAM
ISAM是一個定義明確且歷經時間考驗的數據表格管理方法,它在設計之時就考慮到數據庫被查詢的次數要遠大於更新的次數。因此,ISAM執行讀取操作的速度很快,而且不占用大量的內 存和存儲資源。ISAM的兩個主要不足之處在於,它不支持事務處理,也不能夠容錯:如果你的硬盤崩潰了,那麼數據文件就無法恢復了。如果你正在把ISAM用 在關鍵任務應用程序裡,那就必須經常備份你所有的實時數據,通過其復制特性,MySQL能夠支持這樣的備份應用程序。
MyISAM
MyISAM是MySQL的ISAM擴展格 式和缺省的數據庫引擎。除了提供ISAM 裡所沒有的索引和字段管理的大量功能,MyISAM還使用一種表格鎖定的機制,來優化多個並發的讀寫操作。其代價是你需要經常運行OPTIMIZE TABLE命令,來恢復被更新機制所浪費的空間。MyISAM還有一些有用的擴展,例如用來修復數據庫文件的MyISAMChk工具和用來恢復浪費空間的 MyISAMPack工具。MyISAM強調了快速 讀取操作,這可能就是為什麼MySQL受到了Web開 發如 此青睐的主要原因:在web開發中你所進行的大量數據操作都是讀取操作。所以,大多數虛擬主 機提供商和Internet平台提供商(Internet Presence Provider,IPP)只允許使用MyISAM格式。
HEAP
HEAP允許只駐留在內存裡的臨時表格。駐留在內存裡讓HEAP要比ISAM和 MyISAM都快,但是它所管理的數據是不穩定的,而且如果在關機之前沒有進行保存,那麼所有的數據都會丟失。在數據行被刪除的時候,HEAP也 不會浪費 大量的空間。HEAP表格在你需要使用SELECT表達式來選擇和操控數據的時候非常有用。要記住,在用完表格之後就刪除表格。讓我再重復一遍:在你用完表格之後,不要忘記刪除表格。
InnoDB和Berkley DB
InnoDB和Berkley DB(BDB) 數據庫引擎都是造就MySQL靈活性的技術的直接產品,這項技術就是MySQL++ API。在使用MySQL的時候,你所 面對的每一個挑戰幾乎都源於ISAM和MyISAM數 據庫引擎不支持事務處理也不支持外來鍵。盡管要比ISAM和 MyISAM引擎慢很多,但是InnoDB和BDB包括了對事務處理和外來鍵的支持,這兩點都是前兩個引擎所沒有的。如前所述,如果你的設計需要這些特性中的一者或者兩者,那你就要被迫使用後兩個引擎中的一個了。
數據庫引擎設定與切換:1)CREATE TABLE tblMyISAM (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id),
value_a TINYINT
)TYPE=MyISAM;
2)ALTER TABLE tblMyISAM CHANGE TYPE=InnoDB;
3)SHOW TABLE STATUS FROM tblInnoDB;
MySQL6新特性:1)新Falcon事務存儲引擎(“Falcon存 儲引擎” ) 。
2)支持更多的Unicode字符集: utf16 ,utf32 ,和4字節utf8 。 這些字符集支持這些附加的Unicode字符集,也就是那些在基礎多語言基礎之外的字符 。
3)增加了 BACKUP DATABASE 和 RESTORE 語句來進行備份和還原操作. 見第6.3節, “使用MySQL備份” 。
4)改進INFORMATION_SCHEMA數據庫,並增加了INFORMATION_SCHEMA.PARAMETERS 表,INFORMATION_SCHEMA.ROUTINES 增加了新列
5)對子查詢和Join進行了優化,包括對MyISAD和InnoB存儲引擎分散范圍內的批量索 引訪問。
6)RESET SLAVE不再更改復制連接的參數; 以 前,它重置他們到命令行指定的數值
7)LOCK TABLES 語法已經擴展,支持不會自動事務提交的事務表鎖。在後面的 LOCK TABLES ... IN SHARE MODE 或者LOCK TABLES ... IN EXCLUSIVE MODE 你可以使用未提及的表級鎖,你也可以確保LOCK TABLES 語句可以連續的得到多次的事務鎖, 增加額外的表格到鎖集 合,而無需解鎖以前已經鎖住的表格。當使用LOCK TABLES with IN SHARE MODE 或者在EXCLUSIVE MODE ,表級鎖在事務結束前不會解鎖。 使用LOCK TABLE獲 得的事務鎖在事務結束時釋放,包括顯示的提交或者回滾,或者由於語句引起的隱式提交,或者由於鏈接 關閉. LOCK TABLES的行為在 READ和WRITE鎖 時報出不變( 也就是當不使用 IN SHARE MODE 或者 IN EXCLUSIVE MODE ) 。
8)增強的XML功能,包括一個新的LOAD XML 語 法
9)支持擴展的注釋,包括表,列和索引。