写点什么

Michael Stonebraker:主要的 RDBMS 都是过时的技术

  • 2007-09-12
  • 本文字数:1470 字

    阅读完需:约 5 分钟

Michael Stonebraker ——Ingres 和 Postgres 关系型数据库管理系统(RDBMS)的创造者之一, Vertica Systems 的 CTO——在数据库社区里提出了一个争议性的观点,他认为现在主要的数据库中,大部分都属于过时的技术

Stonebraker 首先分析了主要的关系数据库(IBM 的 DB2 、Microsoft 的 SQL server Oracle ),它们基础是在 25 年前架构的两个平台( System R Ingres ),这两个平台的目标都是成为通用的工具而非某个特定行业的产品。他还指出它们当初设计的环境跟今天的环境很不同,硬件的特点和数据库的使用场景也很不一样。特别是当初 Online Transaction Processing (OLTP)是数据库的唯一的使用领域——现在则出现了数据仓库、半结构化的数据等不相关的应用。

他接着说,“普适”的设计路线如今不再正确,而且“我能想到的每个主要应用领域,都可构建出以特定垂直市场需要为内核的 SQL DBMS 引擎,而且性能会比‘普适’引擎强上 50 倍的样子”。他还说:

[……] 我预测列存储会逐渐占领数据仓库市场,完全取代行存储。因为许多数据仓库用户都正经历着相当的困扰(无法再装载时间段内完成数据装载,不支持临时查询,无法改善性能除非进行大规模升级),我认为向列存储转换的过程将会很快完成,客户正在寻求改善性能的更好方式。从长期来看,我认为在其它市场上也会发生同样的转换,因为用户也在经历同样的困扰,一个特化的软件架构将可能从根本上改善性能。

ComputerWorld 的 Erik Lai 提供了一些列存储数据库背景资料

  • 列数据库按照列来存储数据,与按行存储相对。
  • 由于相似的数据彼此接近,列数据库减少了多种类型的查询的磁盘读取时间(如数据仓库查询)。
  • Google’s BigTable is a column-oriented database which powers many Google applications (e.g. Google Maps and Google Reader)

Lai 还指出行数据库也有优于列数据库的地方,比如将数据写入磁盘——写入一行数据只需单次操作,而多个列则需要多次分别写入。

Slashdot 上也有很多关于这个主题的争论,有些人并不同意 “普适”数据库的概念已经死了。

这是个老问题,“普适”数据库在未来一段时间里还是足够的。越来越多的人喜欢轻量的选择,即使性能稍微低一点;他们硬塞进去的持久化层对性能影响更大,仅仅是因为持久化层能给他们自动生成无聊的数据处理代码。因为不需要自行编写数据处理代码,数据库是如何工作的就没有关系了,你可以专注于如何使用数据,而不必操心表、行、ACID 属性之类。让机器自动生成与数据库交互的代码,你就可以随意操弄生成出来的代码和底下的其他层次。

其他人则同意 Stonebraker 的观点

如果你只想读一大堆数据,列存储很好(比行存储好);但如果你想写一大堆数据,列存储比行存储成本高得多。因此,根据你的需要来选择。你需要存储海量数据吗?列存储可能不适合你……行存储会让你的应用运行得更好,因为向行存储中写入只是简单地在文件里增加一条记录,而向列存储写入通常意味着要在很多个文件里增加记录……显然更昂贵。

另一方面,你面对的是一组相对稳定的数据,读的次数远多于写的次数吗?那么行存储并不是好选择,你应该时时列存储。在行存储里,查询是整行整行的,这意味着你常常碰上那些你一点都不关心的字段。而在列存储里,你可以忽略任何查询中没有提到的字段……另外,在列存储里,数据是同质的,因此不需要再为数据类型的差异付出额外代价,而且可以根据字段来选择最佳的数据压缩方式而不是按照数据块。

为什么人们还坚持用一种方式对付所有的情况?

这场争论才算是刚刚开始。你的观点如何?

查看英文原文: Michael Stonebraker: Major RDBMSes are legacy technology

2007-09-12 00:402346
用户头像

发布了 225 篇内容, 共 63.3 次阅读, 收获喜欢 50 次。

关注

评论

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

一位五年Java开发经验程序员的拼多多/蚂蚁金服/百度面经分享!

Java架构之路

Java 程序员 架构 面试 编程语言

【软件推荐】TOP级YouTube视频下载工具2021

科技猫

软件 分享 工具软件 视频 youtube

一周信创舆情观察(3.29~4.4)

统小信uos

AI 事件驱动场景 Serverless 实践

阿里巴巴云原生

人工智能 Serverless 容器 云原生 消息中间件

Android音视频 - EGL源码解析以及C++实现

LoveYFan

android 音视频 OpenGL ES

你真的懂反馈吗?

石云升

28天写作 职场经验 管理经验 4月日更

全面提升鸡群产能!Newcher智慧养鸡场解决方案剖析

Rancher

平面设计之PS(中)

空城机

PhotoShop ps 4月日更

CIAM的7个基本原则

龙归科技

安全性 用户 业务增长

一个DNS引发的“血案”

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

19张图带你梳理SpringCloud体系中的重要技术点!

Java架构师迁哥

调整云计算资源大小时要避免的10个错误

云计算

Android音视频 - MediaCodec编解码音视频

LoveYFan

android 音视频 编解码

Github限时开放!阿里内部强推的《微服务容器化参考指南》简直太牛了!

Java架构之路

Java 程序员 架构 面试 编程语言

新的物联网技术应用有哪些

cdhqyj

互联网 物联网 通信 计算机

【得物技术】算法入门一:算法的好坏?复杂度告诉你

得物技术

算法 时间复杂度 大前端 入门 复杂度

新华三“云屏”发布:云屏融合重塑工作体验,全力构建智“会”时代

DT极客

深入浅出 LVS 负载均衡系列(一):NAT、FULLNAT 模型原理

UCloud技术

负载均衡

我的 2015-2018 —— 银行软开三年项目回顾

清秋

大前端 重构 鉴权 4月日更

翻译:《实用的Python编程》08_01_Testing

codists

Python

这里有一份2021年Java面试必备的《并发编程》学习资料,你要还是不要?

Java架构之路

Java 程序员 架构 面试 编程语言

聪明人的训练(九)

Changing Lin

4月日更

嘿,朋友!和你讲讲这15年来我的成长吧

亚马逊云科技 (Amazon Web Services)

在业务高峰期拔掉服务器电源是一种怎样的体验?

冰河

分布式 微服务 数据恢复 MySQL 高可用 异常处理

经典递归

山@支

JavaScript小笔记

赫鲁小夫

4月日更

你可能不是真的懂let和const

前端树洞

JavaScript ecmascript 大前端 ES6 4月日更

Fl Studio真的不如Cubase或者Logic Pro等电音软件专业吗?

奈奈的杂社

编曲 电音 电音制作 中国电音 编曲宿主

游戏数据埋点

data_y

游戏 数据埋点 游戏数据分析 埋点定义

三翼鸟的羽翼下,人诗意地栖居在智能生活里

脑极体

一份秀出新天际的SpringCloudAlibaba笔记,把微服务玩的出神入化

Java 编程 程序员 架构 微服务

Michael Stonebraker:主要的RDBMS都是过时的技术_Java_Ryan Slobojan_InfoQ精选文章