哪些数据库在2019年最受青睐?本文向DeveloperWeek的数百名业内人士咨询了当前NoSQL与SQL的使用情况,得到了有关MySQL、MongoDB、PostgreSQL、Redis和其他方面的最新见解,来一起了解下吧!
受访者:DeveloperWeek开发人员、工程师、软件架构师、开发团队和IT领导者。
访问内容:最受欢迎的数据库、跟踪的重要指标以及最耗时的数据库管理任务等。
SQL与NoSQL
众所周知,DBA首先得问自己的第一个问题是,你的应用程序使用的是SQL还是NoSQL数据库?这两者有什么区别?
SQL数据库
也称为关系数据库,基于结构化查询语言(SQL)定义和操作数据。可用于处理结构化数据。
NoSQL数据库
也称为非关系数据库,基于动态结构,可用于处理非结构化数据。比如:文档、图形、键值、列等。
几十年来,SQL数据库的市场份额一直领先于NoSQL数据库,但目前广为流行的NoSQL数据库,如MongoDB、Redis和Cassandra正在将这一差距缩小。虽然许多企业选择从传统数据库(如Oracle)迁移,但并非所有企业都转向NoSQL。据调查,随着企业对PostgreSQL等系统需求的不断增长,SQL仍占有超过60%的市场份额:
SQL数据库使用:60.48%
NoSQL数据库使用:39.52%
2019年SQL与NoSQL用法饼图
最受欢迎的数据库
那么, 2019年,哪些数据库最受欢迎呢?
调查显示,超过五分之三的受访者表示使用了SQL,MySQL 以38.9%的使用率占据主导地位。其次是MongoDB,占24.6%,PostgreSQL占17.4%,Redis占8.4%,Cassandra 3.0%。Oracle仅有1.8%,而CouchDB,Berkeley DB、SQL Server、Redshift、Firebase、Elasticsearch和InfluxDB用户以及其他类别总和仅为2.4%。
2019年最受欢迎的数据库
虽然这些数字有些令人震惊,但毫无疑问,MySQL、MongoDB和PostgreSQL的普及程度正在上升。那么,调查结果与最著名的DB - Engines数据库排名有何不同呢?DB - Engines将它们列为前5名,Oracle保持排名第一, SQL Server排名第3。
DB-Engines排名趋势
虽然我们预计Oracle数据库用户会更多,但是在世界最大的开发者博览会中Oracle数据库用户却很少。
单个数据库与多数据库使用
众所周知,基于安全原因,不能将鸡蛋放在一个篮子里,因此,多数据库的使用在过去10年间出现了爆发式增长。
几乎有一半的受访者使用不止一种数据库来支持他们的应用程序。
单个数据库与多个数据库使用趋势
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 + 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.3%(原文数据为12.6%,经计算,12.4%较准确。如有争议,以原文为准),备份、管理磁盘空间、扩展以及表连接排名第二,各占11.6%。维护和重新分配视图和存储之间的更改计划排名第三,占比为8.7%。清理和数据库设置占比7.2%,排名第四位。升级排在第五位,占比6.5%。其他十几个包括迁移、查询、比较、调优和复制在内的任务共占11.6%。
最耗时的数据库管理任务图
跟踪数据库性能的最重要指标
跟踪数据库性能有三个最重要的指标:查询速度、可靠性和内存。
有51.8%的受访者认为查询速度是最重要的指标,此数据领先于2018年“最耗时的PostgreSQL管理任务报告”中的30.8%。但是如果将问题扩展到所有数据库管理系统,这个数字还会继续增加。查询速度是非常重要的度量指标,查询速度快,就可以在连续的基础上进行跟踪,这样就可以确定运行缓慢的查询是否会影响应用程序性能。许多DBA使用慢速查询分析器来识别问题查询,查看它与哪种类型的查询相关联,按时间范围理解它们的查询,并找到导致系统中读取负载的最高查询,以识别那些未编入索引的查询。
第二是可靠性,受访者比例占18.2%。毋庸置疑,虽然停机问题不如查询慢速常见,可是一旦数据库出现故障,就会对数据库性能产生最严重的影响。这就是为什么要在生产部署中实施高可用性框架以在某个数据中心发生中断时保持数据库联机至关重要的原因。
排在第三位的指标是内存,受访者比例占8.2%。可用的内存越多,数据库应该运行得越好。理解和监视内存使用量受关注度也很高,因为内存不足或耗尽将导致数据库读取和写入磁盘数据变得非常慢。
跟踪数据库性能的最重要指标