數據庫存儲引擎是數據庫底層軟件組件,數據庫管理系統使用數據引擎進行建立、查詢、更新和刪除數據操做。不一樣的存儲引擎提供不一樣的存儲機制、索引技巧、鎖定水平等功能,使用不一樣的存儲引擎還能夠得到特定的功能。mysql
如今許多數據庫管理系統都支持多種不一樣的存儲引擎。MySQL 的核心就是存儲引擎。sql
如建立一個InnoDB類型的表:數據庫
CREATE TABLE `yingqing` (
`goods_id` int(11) NOT NULL AUTO_INCREMENT,
`goods_name` varchar(30) NOT NULL DEFAULT '0',
`goods_number` int(11) NOT NULL DEFAULT '0',
`shop_price` varchar(30) NOT NULL DEFAULT '0',
`market_price` varchar(30) NOT NULL DEFAULT '0',
`click_count` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`goods_id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
下面爲你們介紹一下mysql經常使用的存儲引擎:安全
MyISAM:MySQL 5.0 以前的默認數據庫引擎,最爲經常使用。擁有較高的插入,查詢速度,但不支持事務服務器
InnoDB:事務型數據庫的首選引擎,支持ACID事務,支持行級鎖定, MySQL 5.5 起成爲默認數據庫引擎分佈式
BDB:源自 Berkeley DB,事務型數據庫的另外一種選擇,支持Commit 和Rollback 等其餘事務特性性能
Memory:全部數據置於內存的存儲引擎,擁有極高的插入,更新和查詢效率。可是會佔用和數據量成正比的內存空間。而且其內容會在 MySQL 從新啓動時丟失spa
Merge:將必定數量的 MyISAM 表聯合而成一個總體,在超大規模數據存儲時頗有用code
Archive:很是適合存儲大量的獨立的,做爲歷史記錄的數據。由於它們不常常被讀取。Archive 擁有高效的插入速度,但其對查詢的支持相對較差blog
Federated:將不一樣的 MySQL 服務器聯合起來,邏輯上組成一個完整的數據庫。很是適合分佈式應用
Cluster/NDB:高冗餘的存儲引擎,用多臺數據機器聯合提供服務以提升總體性能和安全性。適合數據量大,安全和性能要求高的應用
CSV: 邏輯上由逗號分割數據的存儲引擎。它會在數據庫子目錄裏爲每一個數據表建立一個 .csv 文件。這是一種普通文本文件,每一個數據行佔用一個文本行。CSV 存儲引擎不支持索引。
BlackHole:黑洞引擎,寫入的任何數據都會消失,通常用於記錄 binlog 作複製的中繼
EXAMPLE :存儲引擎是一個不作任何事情的存根引擎。它的目的是做爲 MySQL 源代碼中的一個例子,用來演示如何開始編寫一個新存儲引擎。一樣,它的主要興趣是對開發者。EXAMPLE 存儲引擎不支持編索引。
同一個數據庫也可使用多種存儲引擎的表。若是一個表要求比較高的事務處理,能夠選擇InnoDB。這個數據庫中能夠將查詢要求比較高的表選擇MyISAM存儲。若是該數據庫須要一個用於查詢的臨時表,能夠選擇MEMORY存儲引擎。