日期:2014-05-16  浏览次数:20729 次

(二) Mysql存储引擎

    

    在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,事务型数据库的另一种选择,支持COMMITROLLBACK等其他事务特性

(4)Memory :所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失

(5)Merge:将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用

(6)Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差

(7)Federated将不同的