写点什么

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

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

关注

评论

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

架构师那些不能碰的禁忌

曲水流觞TechRill

架构师

如何消灭飞机的“黑色十分钟”,AI来帮忙

华为云开发者联盟

华为 AI 智能时代 模型 华为云

Spring Boot + Vue前后端分离项目,Maven自动打包整合

xcbeyond

maven 前后端分离 springboot 部署

[POJ 1002] 487-3279 C++解题报告

一直AC一直爽

POJ ACM

IO系列——UNIX五种IO模型

Java联盟

io 多路复用 异步IO

上海首批金融科技“监管沙盒”应用名单出炉 区块链技术备受青睐

CECBC

金融科技 金融监管 创新与安全 智能多元化

7个获取访问者真实IP的方法,速学!!!

华为云开发者联盟

nginx 大前端 网站 IP 服务器

主宰操作系统的经典算法

苹果看辽宁体育

后端 操作系统

ARTS 第 5 周

乌拉里

国产开源流媒体SRS4.0对视频监控GB28181的支持

潇湘落木

音视频 云直播 短视频 流媒体

Go: 通过代码学习 Map 的设计 — Part II

陈思敏捷

map Go 语言

节约60%成本!虎牙直播云端大数据是怎么做到的?

腾讯云大数据

Kafka两个高性价比的参数调优

我是个bug

Java 大数据 kafka

实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

华为云开发者联盟

人工智能 数据 图像识别 图片 分类

推荐一款技术人必备的接口测试神器:Apifox

狂师

测试 测试驱动开发实战营 接口测试 测试框架

API接口限流

Bruce Duan

分布式限流 单体限流 限流算法

Redis系列(七):缓存只是读写回种这么简单吗?如果是,那么请你一定看看这篇文章!

z小赵

redis 分布式 高并发系统设计

一文了解JDK12 13 14 GC调优秘籍-附PDF下载

程序那些事

GC JDK14 秘籍 JDK12 JDK13

干货分享丨玩转物联网IoTDA服务系列四-智能网关

华为云开发者联盟

物联网 智能设备 应用场景 华为云 mqtt

Nginx 限流配置

Bruce Duan

nginx

一文带你了解Zookeeper所有核心概念

小隐乐乐

zookeeper 分布式 分布式架构

HTTPS详解

Bruce Duan

https 对称加密 非对称加密

正则表达式基础详解

懒猫

Java 正则表达式 大前端 正则

华为云FusionInsight MRS融合大数据平台进阶之路

数据湖洞见

大数据 新特性 FusionInsight 华为云 智能数据湖

LeetCode 1052. Grumpy Bookstore Owner

liu_liu

算法 LeetCode

Linux服务器存在某进程CPU过高如何追溯其问题根源?

Nick

Java Linux centos

一个好用的工作生活平衡方式

霍太稳@极客邦科技

Java架构-Java代码规范那些事

我是苞谷

Java

week8 作业

Shawn

职场求生攻略答疑篇之 1 —— 加班沉思录

臧萌

程序员 加班

架构师训练营第八周作业

张明森

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