服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - 不容错过的MySQL和MariaDB七项功能

不容错过的MySQL和MariaDB七项功能

2023-05-07 02:04未知服务器之家 MongoDB

【51CTO.com快译】在过去这几年,开源关系数据库管理系统MySQL和MariaDB经历了巨大的变化:新增和改进功能、修复长期存在的问题以及全面提升性能。 由于变化很大,很容易错过MySQL和MariaDB在此期间添加的一些优秀功能。本文将介绍

不容错过的MySQL和MariaDB七项功能

【51CTO.com快译】在过去这几年,开源关系数据库管理系统MySQL和MariaDB经历了巨大的变化:新增和改进功能、修复长期存在的问题以及全面提升性能。

由于变化很大,很容易错过MySQL和MariaDB在此期间添加的一些优秀功能。本文将介绍添加到MySQL、MariaDB或两者的七项最主要的新功能以及为什么你应使用它们。

1.JSON支持

NoSQL数据库出现时,承诺开发人员易于使用、可灵活扩展,许多人想知道关系数据库是否会消失。简短的回答:根本没有消失。NoSQL系统方便又灵活,但模式(schema)和表始终会有一席之地。

此外,许多老式关系数据库(包括MySQL和MariaDB)借鉴了NoSQL,添加了JSON支持这项标准功能。最终结果是,你需要时可使用NoSQL,而同一数据库中还有传统SQL。

MySQL和MariaDB中的JSON支持让你可以将JSON文件插入到特别指定的表列中。插入的JSON数据可以使用用于其他数据列的同一种约束加以自动验证。你可以将数据检索为JSON文档或简单标量,可以使用生成的列或虚拟的列获得类似JSON索引的效果。

这里有两个要点值得记住。首先,虽然MySQL和MariaDB中的JSON处理函数集相似,但它们不是彼此的简易替代者。其次,MySQL和MariaDB实现原生JSON列数据类型的机制也不一样。如果你在两个数据库之间迁移或同步数据,这会导致轻微的不兼容性,需要注意。

2.资源组(仅限于MySQL)

所有数据库作业都很重要,但一些作业比其他作业更紧迫。比如说,你可能希望在后台运行归档或计划批处理任务等作业,同时确保尽可能快速地执行关键业务工作。MySQL的资源组使其成为可能。

使用资源组,你可以为分配给该组的所有数据库作业指定类型(“系统”或“用户”)、CPU亲和性以及线程优先级。你可以为会话选择资源组,也可以使用优化器提示为单个语句选择一个资源组。

注意,资源组在MySQL平台上的实现方式不同,你不能将资源组与企业线程池插件结合使用。此外,虽然有一项功能请求在MariaDB中实现类似的功能,但还没有计划实现该功能。

3.OQGRAPH存储引擎(仅限于MariaDB)

图形数据库让你可以比使用关系数据库更有效地存储和探索数据之间的关系。虽然像Neo4j或Amazon Neptune这种专用图形数据库专注于图形存储和处理,但MariaDB让你可以通过OQGRAPH存储引擎,将传统的SQL查询与图形处理一并执行。

大多数图形数据库使用各自的自定义查询语言。借助OQGRAPH,你可以使用传统SQL加载数据并构建图形查询。结果以MariaDB的传统查询格式返回,因此可以与传统SQL表查询的结果相结合或组合。

4.Oracle兼容性功能(仅限于MariaDB)

Oracle的数据库产品仍然是所有IT中使用最广泛的产品,但其许可成本和合同限制使许多用户考虑退出。此外,许多基于Oracle的应用程序大量使用Oracle PL/SQL及其语法所独有的功能。

在过去的几个版本中,MariaDB推出了大量新功能,旨在模仿Oracle数据库的行为,尤其是Oracle的PL/SQL语言。从理论上来说,这让许多现有的PL/SQL代码可以在MariaDB中按原样运行,或者只需稍作修改。MariaDB团队估计,使用兼容性功能,大约80%的旧版Oracle PL/SQL可以按原样运行。

注意:使用Oracle PL/SQL模式的MariaDB命令针对具体的客户端才生效。你无需全局更改MariaDB的行为即可使用该功能。

5.系统版本表(MariaDB)

2011版SQL标准添加了版本表,即数据库跟踪表行的功能。MariaDB在10.3.4版本中添加了系统版本表这项原生功能。

有了MariaDB的系统版本表,你可以使用特定的时间范围来运行查询,得到的结果会在该时间段内显示。你还可以修改或删除属于日期范围的行,添加或删除要跟踪的时间段,以及使用在应用程序级别、系统级别或这两个级别指定的时间段。从理论上来讲,你可以对任何支持时间值的数据库执行该操作,但很难自行执行;MariaDB在底层执行这项工作。

虽然MariaDB中为任何数据库引擎支持系统版本表,但一些功能(比如显示特定事务中间记录的事务精确历史记录)只有使用InnoDB引擎才能享用。

6.ColumnStore存储引擎/ InfiniDB(MariaDB)

MariaDB和MySQL中的可插入式存储引擎技术允许两个数据库都可以极大地扩展原生功能。其中一个存储引擎ColumnStore将MariaDB变成了列存储数据库。(ColumnStore不适用于MySQL,但项目ColumnStore源自InfiniDB,使用MySQL来执行查询。)

列存储是高速查询大量数据的理想选择。OLAP系统使用列存储,因此ColumnStore相当于在MariaDB中提供类似OLAP的功能,而不依赖Teradata或Greenplum这样的外部(通常是商业)产品。ColumnStore并不提供那些产品随附的一整套开箱即用的分析或数据编排功能,但它可以为内部分析解决方案提供数据层。

7.Spider存储引擎

功能越强大,就越难部署到生产环境。数据库分片就是这样一项功能,该功能将数据库分割到多台服务器上以提升性能,这通常需要大量的修改和调整。

MariaDB 10.3.4(及更高版本)借助Spider这种拥有内置分片和数据分区功能的存储引擎简化了这项工作。Spider支持几种不同的模式:简单联合、高可用性、分片以及分片加高可用性。

Spider确实与MariaDB用于负载均衡、代理、故障切换和高可用性的系统MaxScale在功能上有一些重叠。MaxScale的使用范围比Spider广泛得多,但如果你想在较一般的部署环境中充分利用分片功能,Spider很有用。

Spider最初只是MySQL插件,它仍然以这种方式供MySQL用户使用。两个版本中的绝大多数功能都一样,只有少数例外。

原文标题:7 MySQL and MariaDB features you don’t want to miss,作者:Serdar Yegulalp

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

延伸 · 阅读

精彩推荐
  • MongoDBMongoDB系列教程(五):mongo语法和mysql语法对比学习

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    这篇文章主要介绍了MongoDB系列教程(五):mongo语法和mysql语法对比学习,本文对熟悉Mysql数据库的同学来说帮助很大,用对比的方式可以快速学习到MongoDB的命...

    MongoDB教程网3252020-05-01
  • MongoDB在mac系统下安装与配置mongoDB数据库

    在mac系统下安装与配置mongoDB数据库

    这篇文章主要介绍了在mac系统下安装与配置mongoDB数据库的操作步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    CXYhh1219312021-11-14
  • MongoDBMongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感...

    MRR3252020-05-05
  • MongoDBmongodb数据库基础知识之连表查询

    mongodb数据库基础知识之连表查询

    这篇文章主要给大家介绍了关于mongodb数据库基础知识之连表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongodb具有一定的参...

    ZJW02155642020-05-22
  • MongoDBMongoDB的索引

    MongoDB的索引

    数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新 ...

    MongoDB教程网2532020-05-12
  • MongoDBWindows下MongoDB配置用户权限实例

    Windows下MongoDB配置用户权限实例

    这篇文章主要介绍了Windows下MongoDB配置用户权限实例,本文实现需要输入用户名、密码才可以访问MongoDB数据库,需要的朋友可以参考下 ...

    MongoDB教程网3082020-04-29
  • MongoDBMongoDB多条件模糊查询示例代码

    MongoDB多条件模糊查询示例代码

    这篇文章主要给大家介绍了关于MongoDB多条件模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值...

    浅夏晴空5902020-05-25
  • MongoDBMongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    这篇文章主要给大家介绍了关于MongoDB查询之高级操作(多条件查询、正则匹配查询等)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者...

    w田翔3872020-12-19