热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

可插式存储引擎MySQL走向企业级保障_MySQL

MySQL被称为业内最广泛使用的开源数据库之一,而可插式的存储引擎是其最重要的特性之一,了解并应用存储引擎将能够更方便地使用MySQL数据库的企业级特性。图MySQL数据库体系结构MySQL数据库是开源数据库产品中最重要的数据库之一,分为MySQL社区服务器版和MySQL企业
MySQL被称为业内最广泛使用的开源数据库之一,而可插式的存储引擎是其最重要的特性之一,了解并应用存储引擎将能够更方便地使用MySQL数据库的企业级特性。

图 MySQL数据库体系结构

MySQL数据库是开源数据库产品中最重要的数据库之一,分为MySQL社区服务器版和MySQL企业级服务器版。它的企业级服务器版主要被广大的中小企业应用,但在很多大企业的部门级数据库应用或关键业务中也开始被采用。MySQL被称为是最广泛使用的数据库产品,主要是由于它具有非常多的优秀动能,其中最有特色的就是它的可插式存储引擎。

当用户将数据库应用到各个不同的领域时,每一种应用都对数据库提出了满足自己需求的性能特点,而MySQL的插件式存储引擎正是针对此而推出的。使用MySQL插件式存储引擎体系结构,允许数据库专业人员为特定的应用需求选择专门的存储引擎,完全不需要管理任何特殊的应用编码要求。MySQL服务器体系结构由于在存储级别上提供了一致和简单的应用模型和API,应用程序编程人员和DBA可以不再考虑所有的底层实施细节。因此,不同的存储引擎具有不同的能力,而应用程序是与之分离的。

什么是MySQL的存储引擎

那么什么是可插式存储引擎呢?MySQL中使用各种不同的技术,将数据放在不同的文件系统中进行存储,例如针对内存数据库则将数据直接存储在内存中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的功能和能力,通过选择不同的技术,用户能够获得额外的速度或者功能,从而改善应用的整体功能。例如,如果要研究大量的临时数据,也许就需要使用内存存储引擎,内存存储引擎能够在内存中存储所有的表格数据,帮助用户完成应用。又或者,用户也许需要一个支持事务处理的数据库,以确保事务处理不成功时数据的回退能力,这就需要使用支持事务处理的存储引擎。这些不同的技术以及配套的相关功能在MySQL中被称做存储引擎(也称做表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储信息、如何检索这些信息以及需要数据结合什么性能和功能的时候提供最大的灵活性。

可以选择如何存储和检索数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。而其他数据库系统(包括大多数商业数据库)仅支持其中一种类型的数据存储。MySQL数据库的体系结构如上图所示。

存储引擎的配置使用

这里,笔者重点介绍一些经常被大家使用的MySQL存储引擎,并且也介绍一下这些可插式存储引擎如何使用的问题。首先,最常用的是MyISAM存储引擎,它是默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。它支持表级的锁定、全文索引等功能。然后是InnoDB存储引擎,用于事务处理应用程序,具有众多特性,通过MVCC支持事务,允许COMMIT、ROLLBACK和保存点,同时也支持ACID事务。InnoDB存储引擎是由Innobase公司开发的,但在2005年10月份,甲骨文收购了这家公司,所以,虽然当前此引擎依然还在被使用,不过,MySQL已经开发出了新的引擎以便替换InnoDB引擎,代号为Falcon。新的引擎将在不久的将来发布。

接下来是Cluster/NDB引擎,它是MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。而Archive引擎,为大量很少引用的历史、归档或安全审计信息的存储和检索提供了完美的解决方案。Federated引擎则能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库,十分适合于分布式环境或数据集市环境。Merge引擎允许MySQL DBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为一个对象引用它们,对于诸如数据仓储等VLDB环境十分适合。Memory引擎将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问速度。

其他存储引擎包括CSV(引用由逗号隔开的用做数据库表的文件)、Blackhole(用于临时禁止对数据库的应用程序输入)以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。

想要改变存储引擎结构,对于数据库系统而言,只要更改数据库系统的STORAGE_ENGINE配置变量,就能够方便地更改MySQL服务器的默认存储引擎。要想方便地安装插件式存储引擎,这些存储引擎的plugin文件必须位于恰当的MySQL库目录下,而且发出INSTALL PLUGIN语句的用户必须具有超级管理权限。由于可插引擎的便利性,对于所有的应用方案,并不一定要使用相同的存储引擎,可以为同一个应用方案中的每个表使用不同的存储引擎,只需要在创建新表时指定存储引擎,可使用ENGINE参数,或通过使用ALTER TABLE语句指定存储引擎。如果想拔出存储引擎,只需要使用UNINSTALL PLUGIN语句就可以了。(作者单位系总装航天指控中心)

名词解析:开源数据库

开源数据库市场经过多年发展,在企业应用中也已经成熟起来。其中,最为大家了解的是MySQL、PostgreSQL、Firebird、Derby、Orade等。MySQL号称“世界上最流行的开源数据库”,在很多企业中得到了非常多的应用,而且在很多关键业务中也得到应用,有大量成功案例,具有非常好的可靠性和技术优势。它从5.0版本开始加入了大量企业级应用的元素,如存储过程、触发器、视图、指针等。MySQL的企业级应用在中国也广泛开展,中国的万里开源同MySQL建立了合作伙伴关系从事MySQL培训,中国开发人员对MySQL进行开发与应用,并推出了最流行的LAMP应用。

PostgreSQL号称“世界上最先进的开源数据库”,是比较复杂的对象—关系型数据库管理系统(ORDBMS),特性丰富、复杂,其中的一些特性甚至连商业数据库都不具备,其目标是要做超大型的面向对象关系型数据库系统。它支持SQL89和SQL92标准。EnterpriseDB是从PostgreSql基础上延伸的数据库,号称“真正的企业级开源数据库,并足以与Oracle相竞争”。firebird是一个全功能的、强大高效的、轻量级、免维护的数据库,完全支持ANSI SQL92、SQL98等标准,它很容易从单用户、单数据库升级到企业级应用。firebird数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连接。

推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 数据库锁的分类和应用
    本文介绍了数据库锁的分类和应用,包括并发控制中的读-读、写-写、读-写/写-读操作的问题,以及不同的锁类型和粒度分类。同时还介绍了死锁的产生和避免方法,并详细解释了MVCC的原理以及如何解决幻读的问题。最后,给出了一些使用数据库锁的实际场景和建议。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
author-avatar
手机用户2502875153
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有