写点什么

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:402848
用户头像

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

关注

评论

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

架构训练营 - 模块四作业

VegetableBird

架构实战营 #架构实战营 架构师实战营 「架构实战营」

dart系列之:在dart中使用生成器

程序那些事

flutter dart 程序那些事 生成器模式 11月日更

试卷存储方案设计

zjluoyue

大厂算法面试之leetcode精讲3.动态规划

全栈潇晨

LeetCode 算法面经 算法面试

中科柏诚本地生活,率先发力场景金融新营销模式

联营汇聚

Prometheus Exporter (六)SNMP Exporter

耳东@Erdong

Prometheus snmp exporter 11月日更 snmp Exporter

架构师实战营 - 模块四 - 作业

lucian

架构师实战营

Android C++系列:Linux进程(二)

轻口味

c++ android jni 11月日更

vue3 学习笔记 (二)——axios 的使用有变化吗?

码仔

axios Vue 3

不止承上启下,带你了解工业物联网关

华为云开发者联盟

物联网 边缘计算 网关 工业物联网 工业物联网关

千万级学生管理系统的考试试卷存储方案

奔奔

模块四作业

小鹿

高级可视化神器Plotly绘制热力图

Peter

可视化 plotly

架构训练营 模块四 作业

dog_brother

「架构实战营」

Hadoop 入门笔记—核心组件 YARN

恒生LIGHT云社区

大数据 hadoop YARN

架构实战营模块四作业

spark99

架构实战营

GitLab CI/CD 自动化构建与发布实践

Se7en

个人博客网站升级

北漂码农有话说

网站

第四模块-考试试卷存储方案设计

小麦🌾

架构实战营

和不安全访问say goodbye,手把手教大家如何给域名申请免费SSL证书

老表

https 云服务器 SSL证书 跟老表学云服务器

【架构实战营】模块四作业

liu🍊

在120篇系列专栏中,才能学会 python beautifulsoup4 模块,7000字博客+爬第九工场网

梦想橡皮擦

11月日更

openLooKeng视图详解

LooK

大数据 openLooKeng

模块四作业提交

21°Char

并发高?可能是编译优化引发有序性问题

华为云开发者联盟

Java 编译 代码 并发 指令

最强最全面的数仓建设规范指南(二)

五分钟学大数据

11月日更

模块四作业

心怀架构

【死磕Java并发】-----J.U.C之AQS:AQS简介

chenssy

11月日更 死磕 Java 死磕 Java 并发

040022-week4-design

InfoQ_70156470130f

iOS开发:个人整理的关于UITableViewCell的常用属性的知识

三掌柜

11月日更

公司给我股份,有什么需要注意的吗?

石云升

创业公司 11月日更

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