InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

2019 数据库趋势报告,最受欢迎的是 MySQL

  • 2019-03-15
  • 本文字数:2745 字

    阅读完需:约 9 分钟

2019数据库趋势报告,最受欢迎的是MySQL

本文最初发布于 ScaleGrid 的博客,经授权由 InfoQ 中文站翻译并分享。


哪些数据库是 2019 年的“大势”?在 DeveloperWeek 上,我们询问了数百名开发人员、工程师、软件架构师、开发团队和 IT 领导者,以了解当前 NoSQL 与 SQL 的使用情况、最流行的数据库、需要跟踪的重要指标以及最耗时的数据库管理任务。通过本文,你可以了解 MySQL、MongoDB、PostgreSQL、Redis 和其他许多数据库管理系统的最新信息,看看今年最受欢迎的数据库管理系统是哪一个。

SQL vs. NoSQL

任何数据库管理员都知道,你必须问自己的第一个问题是,应用程序是使用 SQL 还是 NoSQL 数据库。这两者有什么区别?

SQL 数据库

SQL 数据库也称为关系型数据库,基于结构化查询语言(SQL)定义和操作数据。SQL 数据库是最常用的数据库,对于处理结构化数据非常有用。结构化数据是指组织数据元素,并标准化它们之间以及与不同属性之间的关系。

NoSQL 数据库

NoSQL 数据库也称为非关系型数据库,允许使用动态模式存储和检索非结构化数据。NoSQL 由于其创建独特结构的灵活性而被广泛使用,它可以把文档、图、列,甚至是键值组织为数据结构。


几十年来,SQL 数据库一直领先于非关系型数据库,但是,随着 MongoDB、Redis 和 Cassandra 等数据库的流行,NoSQL 正在迅速缩小差距。尽管许多组织选择从遗留数据库(如 Oracle)迁移,但并非所有组织都采用 NoSQL 方式。根据我们的调查,随着对 PostgreSQL 等系统的需求不断增长,SQL 仍然占据了 60%的市场份额。


SQL 数据库使用率: 60.48%


NoSQL 数据库使用率:39.52%


最流行的数据库

那么,2019 年,哪些数据库最受欢迎?我们了解到,超过 3/5 的受访者使用 SQL,你可能会认为 Oracle 抢了风头。再猜一遍。MySQL 以 38.9%的使用率高居榜首,其后依次是 MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和 Cassandra(3.0%)。Oracle 仅以 1.8%的使用率排在这些数据库之后,而 CouchDB、Berkeley DB、Microsoft SQL Server、Redshift、Firebase、Elasticsearch 和 InfluxDB 的用户总和仅占 2.4%。



虽然这些数字可能令人震惊,但毫无疑问,MySQL、MongoDB 和 PostgreSQL 正变得越来越流行。那么,该调查与最知名的数据库管理系统趋势相比如何呢?数据库引擎排名——流行趋势报告将这些领导者排在了前 5 位,但 Oracle 仍然保持在第 1 位,而 Microsoft SQL Server 位列第 3 位。



虽然按照我们的预期,到场的 Oracle 数据库用户会多得多,但在世界最大的开发博览会上,Oracle 用户却来的很少。

单数据库 vs. 多数据库

与将所有的鸡蛋都放在一个篮子里的传统策略相比,多数据库类型的使用在过去 10 年出现了爆炸式增长。那么有多少?在我们交流过的组织中,有将近一半实际上使用了不止一种类型的数据库来支持他们的应用程序,而不是单个数据库!使用多个数据库的比例为 44.3%,使用一个数据库的比例为 55.7%:


SQL 与 NoSQL 的多数据库组合

因此,我们了解到,将近一半的受访者正在组合多个数据库来支持他们的产品,他们把哪种类型的数据库管理系统一起使用?这一点不那么令人吃惊,75.6%的多数据库类型组合使用了 SQL 和 NoSQL 数据库。这进一步说明,对于许多组织来说,并不能一刀切。对于 SQL 和 NoSQL,虽然你可能有偏爱,但不可否认的事实是,它们相比于对方都提供了明显的优势。与其将你的组织限制在一种数据库类型上,不如发展你的数据库策略,使其具有兼容性,以便这些强大的数据库管理系统能够互相补充,并填补你数据需求中的空白!


SQL + NoSQL 数据库使用率:75.6%


SQL + SQL 数据库使用率:14.6%


NoSQL + NoSQL 数据库使用率:9.8%


最流行的多数据库类型组合

如果你是一个单类型数据库用户,并且正在考虑将另一种数据库类型添加到你的组合中,那么这一节可能会非常有趣——SQL 和 NoSQL,哪些数据库最常一起使用。


MySQL 和 MongoDB 的组合是明显的赢家,这对组合占据了多数据库类型超过三分之一的份额。虽然 MongoDB 通常被认为是 MySQL 的替代品,但如果设计得当,这两个数据库可以很好地协同。第二流行的组合是 MySQL 和 PostgreSQL 的组合。这两个 SQL 数据库显然是竞争对手,但可以一起使用,用于存储不同的数据集。从上一节的图中可以看到,MySQL 和 PostgreSQL 组合的使用率为 9.76%,占了多数据库中 SQL + SQL 组合的绝大部分。


MySQL + MongoDB:34.15%


MySQL + PostgreSQL:9.76%


MongoDB + PostgreSQL:7.32%


MongoDB + Redis:7.32%


MySQL + MongoDB + PostgreSQL:4.88%


MySQL + MongoDB + PostgreSQL + Redis:4.88%


最耗时的数据库管理任务

好了,我们已经知道了哪些数据库管理系统、类型和使用组合最流行,让我们看看在数据库管理方面什么任务消耗了我们的时间。任何以前管理过数据库的人都知道,维护一个健康的生产部署涉及无数的任务。因此,对于最耗时的数据库管理任务这个问题,有如此多样化的回答,我们并不感到惊讶。


根据我们的调查,监控排在第一位,占 12.6%,稍稍领先于备份,管理磁盘空间、扩展和添加表都以 11.6%的比例并列第二。排在第三位的是视图和存储程序的维护和变更发布,占 8.7%。清理和数据库安装配置并列第四,占 7.2%。升级以 6.5%的比例排在第五位,其他十几项任务占 11.6%,包括迁移、查询、比较、调优和复制。


最重要的数据库性能跟踪指标

虽然对于最重要的数据库管理任务,我们看到了各种各样的回答,但是,对于最重要的性能跟踪指标则有三个最为突出的。


查询响应时间不仅是跟踪最多的指标,也是回答中最多的指标,有 51.8%!在我们 2018 年 10 月编制的一份最耗时的 PostgreSQL 管理任务报告中,我们预计这一比例将达到 30.8%,但是,当扩展到所有的数据库管理系统时,这一比例大幅增加。查询速度是一个非常重要的度量指标,需要连续跟踪,这样就可以确定运行缓慢的查询是否会影响应用程序的性能。许多 DBA 使用一个慢查询分析器工具来识别问题查询,看看它与哪种查询相关,按时间范围理解它们的查询,并找到导致系统中读取负载的顶级查询,以识别那些没有索引的查询。


排在第二位的是可靠性,我们的受访者中有 18.2%的人这么认为。不用说,与慢查询相比,停机并不常见,但如果数据库宕机,则会对性能造成最严重的影响。这就是生产部署实现高可用框架的一个非常重要的原因,要在数据中心发生故障时保持数据库在线。


内存以 8.2%的回答排在第三位。可用内存越多,数据库的性能就应该越好。理解和监控内存使用应该是你的首要任务,因为内存不足或耗尽将导致数据库读取和向磁盘写入数据的速度非常慢。



感谢在 2019 DeveloperWeek 上为云数据库趋势报告做出贡献的数百名参与者!我们很高兴与大家分享这些见解,并希望可以在下面的评论中看到大家的想法。


查看英文原文:2019 Database Trends – SQL vs. NoSQL, Top Databases, Single vs. Multiple Database Use


活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2019-03-15 10:1915714
用户头像

发布了 630 篇内容, 共 321.3 次阅读, 收获喜欢 1432 次。

关注

评论

发布
暂无评论
发现更多内容

国内首款! 亚信科技数据库AntDB亮相中国信通院性能测试工具发布会

亚信AntDB数据库

web前端培训: Vue3面试考点分享

@零度

前端开发 Vue3

前端技术分享:页面性能优化问题复盘

有道技术团队

前端

架构训练营模块二作业

苍狼

作业 模块二 架构训练营5期

Kubernetes集群统一日志管理方案(Elasticsearch+Filebeat+Kibana+Metricbeat)搭建教程

山河已无恙

Kubernetes 2月月更

java培训:JVM 锁的优化和逃逸分析

@零度

JVM JAVA开发

Android 12 “致命”崩溃解决之路

阿里巴巴终端技术

android 崩溃分析 客户端 UC内核

Linux系统编程-进程间通信(共享内存)

DS小龙哥

Linux 共享内存 2月月更

开源demo| 你画我猜——让你的生活更有趣

anyRTC开发者

音视频 互动白板 开源demo 你画我猜 社交娱乐

HTTP缓存协议实战

vivo互联网技术

缓存 浏览器 服务器 HTTP

Java&Go高性能队列之channel性能测试

FunTester

Go 性能测试 队列 channel FunTester

CRM重构项目

Mars

3种基于深度学习的有监督关系抽取方法

华为云开发者联盟

文本检测 区域重组 文本检测算法 PixelLink TextSnake

2022 年值得关注的 十大 DevOps 最佳实践

SoFlu软件机器人

后端新手如何从 0 到 1 打造一款 Apache APISIX 插件

API7.ai 技术团队

后端 插件 Apache APISIX APISIX 网关

【OH干货】如何向OpenHarmony社区提交代码

拓维信息

OpenHarmony

如何通过测试用例保障交付质量

阿里云云效

阿里云 云原生 开发测试 测试用例 研发

微服务从代码到k8s部署应有尽有系列(二、网关)

万俊峰Kevin

微服务 RPC web开发 go-zero Go 语言

设计模式【15】--从审批流中学习责任链模式

秦怀杂货店

Java 设计模式

【高并发】深入解析Callable接口

冰河

Java 并发编程 多线程 高并发 异步编程

与Karmada一起航行:海量节点的多集群管理

华为云原生团队

容器 云原生 k8s k8s多集群管理 多云管理

如何选择充血模型和贫血模型

蜜糖的代码注释

DDD 领域建模 2月月更

【C语言】一篇速通常量变量

謓泽

编程语言 C语言 2月月更 常量变量

翟佳:从技术工程师到「网红」开源创业者

腾源会

开源 开源公司

大数据培训:Flink全链路延迟的测量方式及原理

@零度

flink 大数据开发

文本检测算法新思路:基于区域重组的文本检测

华为云开发者联盟

文本检测 区域重组 文本检测算法 PixelLink TextSnake

启发式智能任务调度的探索

鲸品堂

算法 函数 任务调度

移动开发平台WorkPlus | 快速实现企业移动应用集成化

WorkPlus

X6在数栈指标管理中的应用

袋鼠云数栈

Java 大数据 前端

mark: centos 镜像下载地址

webrtc developer

Linux centos

第十二节:Springboot多环境配置

入门小站

spring-boot

  • 扫码添加小助手
    领取最新资料包
2019数据库趋势报告,最受欢迎的是MySQL_数据库_Kristi_InfoQ精选文章