您的位置: turnitin查重官网> 计算机 >> 程序设计 >探析MySQL数据库存储引擎探析

探析MySQL数据库存储引擎探析

收藏本文 2024-04-03 点赞:25837 浏览:119342 作者:网友投稿原创标记本站原创

  • 摘要:介绍了MySQL数据库存储引擎及其分类,并就最常用的MyISAM和InnoDB两种存储引擎展开研究分析,通过性能测试探究其使用特点,为用户选择合适的数据存储方式提供参考依据。
    关键词:存储引擎;MyISAM;InnoDB
    1672-7800(2012)012-0129-03
    MySQL数据库以其简单高效可靠的特点,在最近几年的时间内从一个不出名的小型数据库系统,变成一个可广泛应用在嵌入式系统、Web网站以及企业级系统的开源数据库管理系统,其成绩是众所周知的。究其原因后不难发现,其一是开源,优点是可获得较快的用户使用速度,开发方可获得较低的管理运营成本,可突破应用平台的局限;其二是操作数据库的实现机制,MySQL数据库主要体现在支持插件式存储引擎,并且数据查询及事务处理的单项执行效率均优于大型数据库系统。本文就存储引擎的特点及分类进行比较分析,为用户选择合适的数据库数据表示方式提供参考。
    1存储引擎及其类别分析

    1.1存储引擎

    存储引擎是存储数据、为存储的数据建立索引以及更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储,所以存储引擎也可以称为表类型(即存储和操作表的类型)。
    在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都一样。而MySQL数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据具体的需求编写自定义存储引擎。

    1.2分类

    MySQL数据库提供了多种存储引擎(在phpMyAdmin界面中单击“引擎”选项,就会显示当前数据库支持的存储引擎),如表1所示。
    其中使用最广泛的是MyISAM和InnoDB两种存储引擎。MyISAM是MySQL早期的ISAM存储引擎的升级版本,也是MySQL默认的存储引擎,而InnoDB是由第三方软件公司Innobase所开发,其最大的特点是提供事务控制的特性,所以使用者也很广泛。
    其它存储引擎相对来说使用机会少一些,都是应用于某些特定的场景:NDBCluster虽然也支持事务处理,但主要用于分布式环境,属于一种sharenothing体系的分布式数据库存储引擎;Maria是MySQL最新开发的对MyISAM的升级版存储引擎;Falcon是MySQL公司自行研发的一款带有事务等高级特性的数据库存储引擎,目前正在研发阶段;Memory存储引擎所有数据和索引均存储于内存中,并使用散列索引,所以数据存取速度非常快,因此主要用于临时表,或者对性能要求较高的场景;Archive是一个数据经过高比例压缩存放的存储引擎,主要用于日志记录和聚合分析,不支持索引;Merge和Federated在严格意义上来说,并不能算作一个存储引擎。因为Merge存储引擎主要用于将几个基表连接到一起,对外作为一个表来提供怎么写作,基表可以基于其它的几个存储引擎;而Federated主要用于远程存取其它MySQL怎么写作器上的数据。

    1.3MyISAM存储引擎

    MyISAM存储引擎是MySQL最早提出并使用的存储引擎,其优点是对表数据的存取、查询、更新效率高。该存储引擎根据应用数据的特点不同分为静态MyISAM、动态MyISAM 和压缩MyIS

    源于:查抄袭率毕业论文理工www.udooo.com

    AM 3种:
    静态MyISAM,数据特点是:如果数据表中的各数据列的长度都是预先固定好的,怎么写作器将自动选择这种表类型。因为数据表中每一条记录所占用的空间都是一样的,所以这种表存取和更新的效率非常高。当数据受损时,恢复也比较容易。
    动态MyISAM,数据特点是:如果数据表中出现varchar、text或BLOB字段时,怎么写作器将自动选择这种表类型。相对于静态MyISAM,这种表存储空间比较小,但由于每条记录的长度不一,所以多次修改数据后,数据表中的数据就可能离散地存储在内存中,进而导致执行效率下降。同时,内存中也可能会出现很多碎片。因此,这种类型的表要经常用optimize table 命令或优化工具来进行碎片整理。
    压缩MyISAM,数据特点是:以上说到的两种类型的表都可以用myisamchk工具压缩。这种类型的表进一步减小了占用的空间,但是这种表压缩之后不能再被修改。另外,因为是压缩数据,所以这种表在读取的时候要先实行解压缩。因此执行效率较低。
    不管是何种MyISAM表,目前它都不支持事务、行级锁和外键约束的功能。

    1.4InnoDB存储引擎

    相比MyISAM,InnoDB具有支持事务、行级锁和外键约束等功能。
    (1)支持事务安全。Innodb存储引擎最重要的一点就是对事务安全的支持,这也是让它成为最流行的存储引擎很重要的原因,而且实现了SQL92标准所定义的4个级别 (READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SERIALIZABLE)。
    (2)数据库多版本读取。InnoDB在事务支持的同时,为了保证数据的一致性以及并发时刻的性能,通过对undo信息的聚簇索引实现对数据的多版本读取。
    (3)锁定机制的改进。InnoDB改变了MyISAM的锁机制,实现了行锁。虽然InnoDB的行锁机制是通过索引来完成的,但是由于数据库中99%的SQL语句都是通过索引来检索数据,所以行锁机制为InnoDB在承受高并发下的环境下增强了竞争力。
    (4)实现外键。InnoDB实现了外键引用这一数据库的重要特性,使得在数据库端控制部分数据的完整性成为可能。
    2MyISAM和InnoDB两种存储引擎性能测试
    (1)软件环境。Windows XP SP2,PHP5.2.1,MySQL5.0.37,IIS6。

    源于:论文怎么写www.udooo.com

  • copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号