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数据库服务器能够管理多个独立的数据库,每一个数据库同时可支持多个客户端连接。

Vue3+TS+Vite开发技巧:如何进行数据加密和存储随着互联网技术的快速发展,数据的安全性和隐私保护变得越来越重要。在Vue3+TS+Vite开发环境下,如何进行数据加密和存储,是每个开发人员都需要面对的问题。本文将介绍一些常用的数据加密和存储的技巧,帮助开发人员提升应用的安全性和用户体验。一、数据加密前端数据加密前端加密是保护数据安全性的重要一环。常用

什么是缓存?缓存(发音为ka·shay)是一种专门的高速硬件或软件组件,用于存储经常请求的数据和指令,这些数据和指令又可用于更快地加载网站、应用程序、服务和系统的其他部分。缓存使最常访问的数据随时可用。缓存文件与缓存内存不同。缓存文件是指经常需要的文件,如PNG、图标、徽标、着色器等,多个程序可能需要这些文件。这些文件存储在您的物理驱动器空间中,通常是隐藏的。另一方面,高速缓存内存是一种比主内存和/或RAM更快的内存类型。它极大地减少了数据访问时间,因为与RAM相比,它更靠近CPU并且速度

10月8日消息,美国汽车市场正在经历一场引擎盖下的变革,以前备受喜爱的六缸和八缸动力发动机正逐渐失去统治地位,而三缸发动机则崭露头角。10月8日的消息显示,美国汽车市场正在经历一场引擎盖下的变革。过去备受喜爱的六缸和八缸动力发动机正在逐渐失去统治地位,而三缸发动机则开始崭露头角在大多数人的印象中,美国人钟情于大排量车型,而"美式大V8"一直是美国车的代名词。然而,根据外媒近期公布的数据,美国汽车市场的格局正在发生巨大变化,引擎盖下的战斗正愈演愈烈。据了解,在2019年之前,美

实时全局光照(Real-time GI)一直是计算机图形学的圣杯。多年来,业界也提出多种方法来解决这个问题。常用的方法包通过利用某些假设来约束问题域,比如静态几何,粗糙的场景表示或者追踪粗糙探针,以及在两者之间插值照明。在虚幻引擎中,全局光照和反射系统Lumen这一技术便是由Krzysztof Narkowicz和Daniel Wright一起创立的。目标是构建一个与前人不同的方案,能够实现统一照明,以及类似烘烤一样的照明质量。近期,在SIGGRAPH 2022上,Krzysztof Narko

黄院士在《赛博朋克2077》里搞的智能NPC,已经飙起中文了?量子位的一手体验,亲眼见证了NPC们流利地用中英双语对话,表情动作自然,口型也能对上……如果不是眼前就有一块屏幕,真的会有种身临其境之感。今年的CES展会上,英伟达用智能引擎AvatarCloudEngine(ACE),让游戏NPC“活”了起来,引起了不小的震撼。△CES上展示的智能NPC使用ACE,游戏中的角色可以与玩家进行逼真的语音对话,同时展现出生动的表情和肢体动作,而无需提前准备剧本。亮相当时,就有育碧、腾讯、网易、米哈游等国

PHP和swoole如何实现高效的数据缓存和存储?概述:在Web应用开发中,数据的缓存和存储是非常重要的一部分。而PHP和swoole提供了一种高效的方法来实现数据的缓存与存储。本文将介绍如何使用PHP和swoole来实现高效的数据缓存和存储,并给出相应的代码示例。一、swoole简介:swoole是一个针对PHP语言开发的,高性能的异步网络通信引擎,它可以

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。对于熟悉数据库操作的同学来说,编写优美的SQL语句,从数据库中想方设法找出自己需要的数据,是常规操作了。而对于熟悉机器学习的同学来说,获取数据,对数据进行预处理,建立模型,确定训练集和测试集,用训练好的模型对未来进行一系列的预测,也是一种常规操作了。那么,我们能否将两种技术结合起来呢?我们看到数据库里存储了数据,而进行预测需要基于以往的数据。如果我们通过数据库里现有的数据,对于未来的数据进行查询的话,那么是

使用PHP数组实现数据缓存和存储的方法和技巧随着互联网的发展和数据量的急剧增长,数据缓存和存储成为了我们在开发过程中必须要考虑的问题之一。PHP作为一门广泛应用的编程语言,也提供了丰富的方法和技巧来实现数据缓存和存储。其中,使用PHP数组进行数据缓存和存储是一种简单而高效的方法。一、数据缓存数据缓存的目的是为了减少对数据库或其他外部数据源的访问次数,从而提高


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境