日期:2014-05-16 浏览次数:20751 次
在mysql中的数据用各种不同的技术存储在文件或者内存中。这些技术都是用了不同的存储机制、索引技巧、锁定水平,最终给用户提供不同的选择。这些不同的技术以及配套的相关功能在mysql中被称为存储引擎(或者表类型)。
在mysql中配置有许多不同的存储引擎,用户可以灵活的选择适用于服务器、数据库和表格的存储引擎,以便获得最大的性能和最大的灵活性。这也是mysql不同于其他大型数据库以及mysql为何如此受欢迎的主要因素。一些大型的数据库仅采用了一种存储引擎,以一种尺码满足所有需求也就意味着会牺牲一些性能。
在命令行中可以通过命令显示其支持的存储引擎:
show engines;
在mysql中支持的存储引擎主要有MyISAM、CSV、MRG_MYISAM、BLACKHOLE、InnoDB、MEMORY、ARCHIVE…
(1)MyISAM: Mysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务
.frm: 存储表结构
.myd: 存储数据,MYData的缩写
.myi: 存储索引,MYIndex的缩写
(2)Inn0DB :事务型数据库的首选引擎,支持ACID事务,支持行级锁定
(3)BDB:源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
(4)Memory :所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
(5)Merge:将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
(6)Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差
(7)Federated:将不同的