MySQL数据库存储引擎探究

MySQL数据库存储引擎探究

ID:46613357

大小:76.50 KB

页数:9页

时间:2019-11-26

MySQL数据库存储引擎探究_第1页
MySQL数据库存储引擎探究_第2页
MySQL数据库存储引擎探究_第3页
MySQL数据库存储引擎探究_第4页
MySQL数据库存储引擎探究_第5页
资源描述:

《MySQL数据库存储引擎探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、MySQL数据库存储引擎探究摘要:介绍了MySQL数据库存储引擎及其分类,并就最常用的MyISAM和InnoDB两种存储引擎展开研究分析,通过性能测试探究其使用特点,为用户选择合适的数据存储方式提供参考依据。关键词:存储引擎;MyISAM;InnoDB中图分类号:TP391文献标识码:A文章编号:1672-7800(2012)012-0129-03MySQL数据库以其简单高效可靠的特点,在最近几年的时间内从一个不出名的小型数据库系统,变成一个可广泛应用在嵌入式系统、Web网站以及企业级系统的开源数据库管理系统,其成绩是众所周知的。究其原因后不难发现,其一是开源,优点是可获得较快的用户使用速

2、度,开发方可获得较低的管理运营成本,可突破应用平台的局限;其二是操作数据库的实现机制,MySQL数据库主要体现在支持插件式存储引擎,并且数据查询及事务处理的单项执行效率均优于大型数据库系统。本文就存储引擎的特点及分类进行比较分析,为用户选择合适的数据库数据表示方式提供参考。1存储引擎及其类别分析1.1存储引擎存储引擎是存储数据、为存储的数据建立索引以及更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储,所以存储引擎也可以称为表类型(即存储和操作表的类型)。在Oracle和SQLServer等数据库中只有一种存储引擎,所有数据存储管理机制都一样。而MySQL数据库提

3、供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据具体的需求编写自定义存储引擎。1.2分类MySQL数据库提供了多种存储引擎(在phpMyAdmin界面中单击“引擎”选项,就会显示当前数据库支持的存储引擎),如表1所示。其中使用最广泛的是MyISAM和InnoDB两种存储引擎。MyISAM是MySQL早期的ISAM存储引擎的升级版本,也是MySQL默认的存储引擎,而InnoDB是由第三方软件公司Innobase所开发,其最大的特点是提供事务控制的特性,所以使用者也很广泛。其它存储引擎相对来说使用机会少一些,都是应用于某些特定的场景:NDBCluster虽然也

4、支持事务处理,但主要用于分布式环境,属于一种sharenothing体系的分布式数据库存储引擎;Maria是MySQL最新开发的对MyISAM的升级版存储引擎;Falcon是MySQL公司自行研发的一款带有事务等高级特性的数据库存储引擎,目前正在研发阶段;Memory存储引擎所有数据和索引均存储于内存中,并使用散列索引,所以数据存取速度非常快,因此主要用于临时表,或者对性能要求较高的场景;Archive是一个数据经过高比例压缩存放的存储引擎,主要用于日志记录和聚合分析,不支持索弓I;Merge和Federated在严格意义上来说,并不能算作一个存储引擎。因为Merge存储引擎主要用于将几个

5、基表连接到一起,对外作为一个表来提供服务,基表可以基于其它的几个存储引擎;而Federated主要用于远程存取其它MySQL服务器上的数据。1.3MyISAM存储引擎MyISAM存储引擎是MySQL最早提出并使用的存储引擎,其优点是对表数据的存取、查询、更新效率高。该存储引擎根据应用数据的特点不同分为静态MyISAM.动态MyISAM和压缩MyISAM3种:静态MyISAM,数据特点是:如果数据表中的各数据列的长度都是预先固定好的,服务器将自动选择这种表类型。因为数据表中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高。当数据受损时,恢复也比较容易。动态MyISAM,数据

6、特点是:如果数据表中出现varchartext或BLOB字段时,服务器将自动选择这种表类型。相对于静态MyISAM,这种表存储空间比较小,但由于每条记录的长度不一,所以多次修改数据后,数据表中的数据就可能离散地存储在内存中,进而导致执行效率下降。同时,内存中也可能会出现很多碎片。因此,这种类型的表要经常用optimizetable命令或优化工具来进行碎片整理。压缩MyISAM,数据特点是:以上说到的两种类型的表都可以用myisamchk工具压缩。这种类型的表进一步减小了占用的空间,但是这种表压缩之后不能再被修改。另外,因为是压缩数据,所以这种表在读取的时候要先实行解压缩。因此执行效率较低。

7、不管是何种MyISAM表,目前它都不支持事务、行级锁和外键约束的功能。1.4InnoDB存储引擎相比MyISAM,InnoDB具有支持事务、行级锁和外键约束等功能。(1)支持事务安全。Innodb存储引擎最重要的一点就是对事务安全的支持,这也是让它成为最流行的存储引擎很重要的原因,而且实现了SQL92标准所定义的4个级别(READUNCOMMITTED,READCOMMITTED,REPEATABLEREAD,SERIA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。