数据库新闻速递 -- POSTGRESQL 正在蚕食数据库市场 (翻译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群(共1140人左右 1 + 2 + 3)

1c49d36622119f845fc567179b0c83bc.png

尽管NoSQL数据库继续蓬勃发展,但关系型数据库仍然远未结束。但在关系型数据库中,有一个数据库在不断增长的同时,其他更成熟的数据库却付出了代价。是的,我说的是PostgreSQL。真正的问题不是为什么开发人员喜欢PostgreSQL,有很多原因可以解释。而是为什么开发人员现在如此喜欢它。

持续发展的时刻 PostgreSQL的复兴已经持续了几年,这是我多次写过的内容。它受欢迎的原因?有几个原因,正如顾问Tanel Poder所总结的:

  1. 丰富的功能集

  2. 极高的可扩展性(扩展、钩子)

  3. 开源

  4. “宽松”的开源许可证 事实是,这些特点已经存在了一段时间,而且远在PostgreSQL真正开始攀升受欢迎程度之前就已经如此(也许最能反映PostgreSQL相对于关系型数据库巨头增长率的是OnGres创始人Álvaro Hernández,他使用线性刻度图展示了PostgreSQL相对于传统关系型数据库的相对增长):

    6b78eea224a801e2faf43f6a471d37c0.png

MySQL早期加入了开源关系型数据库的行列,但更多地用于构建初创网络,而不是取代主流企业数据库。MySQL最终被Oracle收购,这似乎并未减缓其发展,但可能降低了社区的热情。因此,随着时间的推移,MySQL相对于PostgreSQL不仅在流行度上下降,而且也相对于一批新兴的NoSQL数据库(如Amazon DynamoDB、MongoDB、Redis、Apache Cassandra等)下降。

无论如何,没有人质疑PostgreSQL的优秀性,以及它在偏好通用数据库的行业趋势中所扮演的角色。这并非新闻。新闻的是,现在人们争相进行现代化改造,而PostgreSQL在其中扮演的角色。

推动简化操作 尽管有各种各样的原因可供喜欢PostgreSQL的人选择,但也许有一个原因显得突出:它很简单。它并不一定比其他关系型数据库更易于学习或使用(甚至连训练过MySQL的新手都不太可能转向它)。但对于那些已经习惯了关系型数据库并希望摆脱昂贵的Oracle等数据库的人来说,PostgreSQL就是“简单按钮”。正如EDB首席执行官Ed Boyajian曾告诉我一样,大多数公司并不寻求搬迁和迁移,但他们会选择PostgreSQL来构建新的应用程序,因为他们已经在公司内部积累了几十年的Oracle、SQL Server和DB2的SQL/关系技能。

因此,即使对于他们的使用情况来说,另一种数据库模型实际上可能更好,他们也会选择“简单按钮”即使用PostgreSQL。正如前AWS工程师Dave Cuthbert所指出的那样,"更多应用程序使用关系型[数据库],是因为这是他们唯一掌握的工具"。

当然,在许多企业工作负载中,进行架构设计的人实际上并不是企业的雇员,而是作为顾问被雇佣。在最大的全球系统集成商中,人们已经具备了内建的关系型数据库经验,从我在行业人士的交谈中了解到,这往往是他们推动PostgreSQL的主要原因。

在大流行病期间和之后,企业需要大量现代化企业基础设施以使其更具敏捷性,并对快速变化的客户需求做出响应。这些全球系统集成商接手了现代化项目,并经常应用最容易部署的技术,从而为他们的服务赚取最高额的利润。我们可以讨论这是否实际上对于想要进行现代化改造的客户来说是最好的选择,但理解其中的基本逻辑并不难。

现在,如果你是我,为一家文档数据库公司工作,可以认为这种对关系型数据库的明显过度依赖更多地是惯性所致,而不是有意采用现代数据基础设施。在我看来,对于“为什么现在?”这个问题的回答很多都是“因为它很简单。”而不是因为它是最好的选择。

当然,“最好”是主观的,“因为它很简单”一直是从开源到云计算的主要推动因素。便利性是一种令人上瘾的东西。那些想要与PostgreSQL的“简单按钮”竞争的公司需要提出至少同样有吸引力的解决方案。与此同时,PostgreSQL似乎并没有侵蚀NoSQL数据库的市场份额,但它肯定是以牺牲关系型数据库的利益来实现增长的。

0a771926c3881f3f40ab9196e670262f.png

6f77b67794b8f3cee4464c44ca1f5106.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/32311.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习笔记 - 使用 YOLOv5、O​​penCV、Python 和 C++ 检测物体

一、YOLO v5简述 YOLO v5虽然已经不是最先进的对象检测器,但是YOLOv5 使用了一个简单的卷积神经网络 CNN架构(相对YOLO v8来讲,不过v8精度是更高了一些),更易理解。这里主要介绍如何轻松使用 YOLO v5来识别图像中的对象。将使用 OpenCV、Python 和 C++ 来加载和调用我们的…

K8S系列文章之 一键部署K8S环境

部署的原理是基于自动化部署工具 Ansible 实现的,需要提前安装Ansible 并配置下主机节点环境 1. 安装 Ansible 首先ansible基于python2.X 环境,默认centos都已经安装好了python2环境 // 最好更新下库 // yum update yum install -y epel-release yum i…

flask使用cookie (设置cookie与查看cookie内容)

1.flask包cookie的使用 设置cookie app.route(/set_cookie) def set_cookie():resp make_response(Setting cookie)resp.set_cookie(username, John)return resp查看cookie: app.route(/get_cookie) def get_cookie():username request.cookies.get(username)return Welco…

背上沉重的书包准备run之react篇

沉重,太沉重了。。。没理好捏,等我脑子歇歇再好好补充一下 react特性? React 是一个用于构建用户界面的 JavaScript 库,它具有以下特性: 组件化开发:React 基于组件化思想,将 UI 拆分为独立、…

Spring系列四:AOP切面编程

文章目录 💗AOP-官方文档🍝AOP 讲解🍝AOP APIs 💗动态代理🍝初始动态代理🍝动态代理深入🍝AOP问题提出📗使用土方法解决📗 对土方法解耦-开发最简单的AOP类📗…

MongoDB文档-进阶使用-spring-boot整合使用MongoDB---MongoRepository完成增删改查

阿丹: 之前学习了在MongoDB客户端上的MongoDB语句现在将MongoDB整合到spring项目。 传送门: MongoDB文档--基本概念_一单成的博客-CSDN博客 MongoDB文档--基本安装-linux安装(mongodb环境搭建)-docker安装(挂载数据卷…

『CV学习笔记』docker和nvidia-docker离线安装

docker和nvidia-docker离线安装 文章目录 1. docker的deb包下载链接2. nvidia-docker 的deb包下载3. 重启 docker4. 检验安装5. Docker容器命令行不支持Tab键命令自动补全6. 参考文献这里是ubuntu操作系统, 如果是其他的操作系统,则需要安装对应的deb包1. docker的deb包下载链…

木马免杀(篇二)shellcode 学习

木马免杀(篇二)shellcode 学习 —— shellcode介绍 shellcode 是一段利用软件漏洞进行执行的机器码, 通常用汇编语言编写并被翻译为十六进制操作码,因常被攻击者用于获取系统的命令终端shell 接口,所以被称为 shellc…

并发编程面试题2

并发编程面试题2 一、AQS高频问题: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state…

openEuler加载本地yum源

挂载iso文件到mnt mount /data/download/openEuler-22.03-LTS-x86_64-dvd.iso /mnt/修改/etc/yum.repos.d/openEuler.repo [Local] namelocal baseurlfile:///mnt enabled1 gpgcheck1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-openEuler3.更新yum源信息 yum clean all yu…

【Ubuntu】安装docker,docker compose 以及部署一个docker应用

大家好!在过去,已经分享了很多有关通过Docker部署应用的内容。今天,我将为大家详细介绍如何在Ubuntu系统上部署最新的Docker平台。 Docker是什么 Docker是一个开源的容器化平台,它允许您将应用程序及其所有依赖项打包到称为容器…

CH343 USB转串口芯片资料下载(合集)

1、产品手册 CH343DS1.PDF - 南京沁恒微电子股份有限公司CH343技术手册,USB转单串口芯片,支持最高6M波特率,串口信号支持1.8~5V,内置晶振。CH343使用系统集成的CDC驱动或厂商驱动。厂商驱动支持完整串口功能和更高波特率。https:…

网络防御(6)

密码学综合应用 定义: 密码学综合应用是指将密码学的理论和技术应用于各种场景中,以保障信息的安全性、完整性和可靠性。密码学的应用范围非常广泛,包括通信安全、网络安全、电子商务、数字签名、认证、密钥管理等。 密码学综合应用的实例…

基于STM32微控制器的物联网(IoT)节点设计与实现

基于STM32微控制器的物联网(IoT)节点的设计和实现。我们讨论物联网节点的基本概念和功能,并详细介绍了STM32微控制器的特点和优势。然后,我们将探讨如何使用STM32开发环境和相关的硬件模块来设计和实现一个完整的物联网节点。最后,我们将提供一个示例代码,展示如何在STM3…

【24择校指南】南京大学计算机考研考情分析

南京大学(A) 考研难度(☆☆☆☆☆) 内容:23考情概况(拟录取和复试分数人数统计)、院校概况、23初试科目、23复试详情、参考书目、各科目考情分析、各专业考情分析。 正文2178字,预计阅读:6分…

Mr. Cappuccino的第59杯咖啡——简单手写SpringIOC框架

简单手写SpringIOC框架 环境搭建基于XML方式项目结构项目代码运行结果 基于注解方式项目结构项目代码运行结果 简单手写SpringIOC框架核心原理基于XML方式原理项目结构项目代码运行结果 基于注解方式原理项目结构项目代码运行结果 环境搭建 基于XML方式 项目结构 项目代码 p…

JSP实训项目设计报告—MVC简易购物商城

JSP实训项目设计报告—MVC简易购物商城 文章目录 JSP实训项目设计报告—MVC简易购物商城设计目的设计要求设计思路系统要求单点登录模块商品展示模块购物车展示模块 概要设计Model层View层Controller层 详细设计Model层View层登录界面系统主界面 Controller层 系统运行效果项目…

机器学习玩耍

参考:Python基于机器学习实现的股票价格预测、股票预测源码数据集,机器学习大作业_python股票分析系统源码_云哲-吉吉2021的博客-CSDN博客

信号与槽的注意细节

信号与槽是qt的关键技术,它有一些规则需要注意,笔者在这里将其总结: 1、一个信号可以连接多个槽 connect(spinNum,SIGNAL(valueChanged(int)),this,SLOT(addFun(int))); connect(spinNum,SIGNAL(valueChanged(int)),this,SLOT(updateStatus…

探索APP界面布局的艺术与技巧:从入门到精通

引言 在当今数字化时代,移动应用程序(APP)成为人们生活中不可或缺的一部分。而一个成功的APP界面布局是吸引用户、提升用户体验的关键因素之一。本文将带您深入探索APP界面布局的艺术与技巧,从入门到精通,让您能够轻松…