数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行建立、查询、更新和删除数据操做。不一样的存储引擎提供不一样的存储机制、索引技巧、锁定水平等功能,使用不一样的存储引擎还能够得到特定的功能。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存储引擎。