为什么关系数据库存在可扩展性问题?

2024-04-08

最近我在网上看到一些文章,指出关系数据库存在扩展问题,在大数据方面不太好用。特别是在数据量很大的云计算中。但通过谷歌搜索,我找不到充分的理由来解释为什么它的可扩展性不高。您能解释一下关系数据库在可扩展性方面的局限性吗?

Thanks.


想象一下两种不同的十字路口。

有交通信号灯或警察控制交通,十字路口的行驶速度有限,还有一个看门狗精确记录十字路口上行驶的汽车在什么时间、什么方向行驶。

另一个则没有这些,每个到达十字路口的人,无论他以什么速度行驶,都只是一头扎进去,希望尽快通过。

前者是任何传统的数据库引擎。十字路口是数据本身。汽车是想要访问数据的交易。交通灯或警察就是 DBMS。看门狗保存日志和日记。

后者是 NOACID 类型的发动机。

两者都有一个饱和点,此时到达的汽车被迫开始在入口处排队。两者都有最大吞吐量。对于前一种类型的十字路口,该阈值较低,原因应该是显而易见的。

然而,前一种十字路口的优势也应该是显而易见的。发生事故的机会就更少了。在第二种类型的十字路口,只有当交通密度远低于十字路口的理论最大吞吐量时,才可以预期事故不会发生。在转化为数据管理引擎时,它转化为一致和连贯结果的保证,只有前一种类型的十字路口(经典数据库引擎,无论是关系型、网络型还是分层型)才能提供这种保证。

这个类比还可以进一步延伸。想象一下如果发生事故会发生什么。在第二种类型的十字路口,首要关注的问题可能是尽快清理道路,以便交通能够恢复,当完成后,仍然可以使用哪些信息来调查谁造成了事故以及如何造成事故?什么都没有。这不会被人知道。十字路口是开放的,只是等待下一次事故的发生。在受管制的十字路口,有负责交通的警察看到了发生的事情并可以作证。有日志记录了哪辆车在什么时间、在哪个入口点、以什么速度进入,有大量材料可供检查,以确定事故的根本原因。但当然,这些都不是免费的。

色彩缤纷足以作为解释吗?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么关系数据库存在可扩展性问题? 的相关文章

  • Mysql对三表多列的连接查询

    我有三个这样的表 专业化 sid s name 1 test 1 2 test 2 Person pid name sid 1 ABC 1 2 XYZ 2 Timing tid time from time to pid 1 08 00 0
  • 使用 SQLite 和 Python 从数据库读取:提供的绑定数量不正确

    我使用以下 python 脚本读取数据库 cur execute SELECT FROM pending where user ID 其中 ID 是某人的名字 在本例中为 Jonathan 但是 当我尝试运行此脚本时 我收到错误消息 Tra
  • InnoDB 或 MyISAM - 为什么不两者都使用呢?

    我读过各种关于两者之间哪个更好的主题InnoDB and MyISAM 看来争论的都是使用还是其他 根据表的不同 是否不能同时使用两者 这样做会有什么缺点 据我所知 发动机可以在CREATE TABLE命令 因此 某些经常读取的表可以设置为
  • Firebird数据库模式/数据差异工具

    RedGate http www red gate com为 Microsoft SQL Server 制作一个工具 允许您捕获两个数据库之间的差异 它生成更新数据库模式所需的脚本 同时保留数据 我需要为 Firebird 数据库找到这样的
  • 如何通过逗号分隔将 2 行合并为一行?

    我需要将这些单独的行合并到一列 我现在如何通过逗号分隔合并列 CID Flag Value 1 F 10 1 N 20 2 F 12 2 N 23 2 F 14 3 N 21 3 N
  • 单向关系和双向关系的区别

    我想知道这两个词是什么意思 我遇到他们是在教义的文档 http www doctrine project org documentation manual 2 0 en association mapping 但我不明白他们的意思 这与常见
  • 如何解析 Google Alerts 中的数据?

    首先 除了解析 Google 发送给您的电子邮件文本之外 您如何将 Google Alerts 信息存入数据库 似乎没有 Google Alerts API 如果您必须解析文本 您将如何解析电子邮件的相关部分 创建警报时 将 传送至 设置为
  • 使用 LIKE 和撇号的 Mysql 查询问题

    所以我有一个有趣的问题 我从未遇到过 并且似乎找不到太多有关纠正该问题的信息 我有一个庞大的数据库 里面有大量的数据 相当于 10 年的数据 并试图对其进行搜索 现在搜索功能运行良好 但最近有人让我注意到一个 错误 如果你愿意的话 我尝试对
  • 如何在SQLite中的两个表之间复制数据?

    我有两个具有不同列的表 如下所示 table1 id title name number address table2 id phone name address 如何将数据 名称 地址 从表 1 复制到表 2 我的问题有两种情况 第一 t
  • 多个数据库连接

    我有三张桌子 categories content info and content The categories表包含类别的id及其 IDparent类别 The content info包含两列 entry id帖子的 ID 和cat
  • MySQL - 替换列中的字符

    作为一个自学成才的新手 我给自己制造了一个大问题 在将数据插入数据库之前 我将字符串中的撇号 转换为双引号 而不是 MySQL 实际需要的反斜杠和撇号 在我的表增长到超过 200 000 行之前 我认为最好立即纠正此问题 所以我做了一些研究
  • python 没有名为serial的模块

    我的 python 程序有问题 我编写了程序来将数据 温度 从 arduino 获取到我的树莓派 sqlite 数据库 但它在第 4 行 导入串行 处给了我一个错误 提示 ImportError 没有名为串行的模块 我使用 python3
  • 非加密用途的最快哈希值?

    我本质上是在准备要放入数据库的短语 它们可能格式错误 所以我想存储它们的简短散列 我将简单地比较它们是否存在 所以散列是理想的 我假设 MD5 在处理 100 000 个请求时相当慢 所以我想知道散列短语的最佳方法是什么 也许推出我自己的散
  • 如何在 PHP MYSQL 中将数据库表和每条记录从一台数据库服务器复制到另一台数据库服务器?>

    您好 我编写了一段代码 可以将数据库表从一个服务器复制到另一个服务器 但是每个表的记录没有复制 如何编写一个可以将表和每个记录从一个数据库服务器复制到另一个数据库服务器的函数 这是我的示例代码
  • 有很多数据库视图可以吗?

    我很少 每月 每季度 使用 Microsoft SQL Server 2005 数据库视图生成数百份 Crystal Reports 报告 在我不读取这些视图的所有时间里 这些视图是否会浪费 CPU 周期和 RAM 因为我很少从视图中读取数
  • 如何记录数据库代码以查看数据库对象之间的依赖关系? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想为我的宠物项目编写文档 我的 PostgreSQL 数据库中有 30 个表 近 50 个视图和大约 30 个函数 存储过程 我想看
  • 使用数据库进行日志记录

    大多数日志似乎都是纯文本形式 而不是放入 MySQL 其他类型的数据库中 这是否有原因 在我看来 将它们放入数据库将使分析变得非常非常容易 但这会以牺牲速度还是其他什么为代价 我不太关心可移植性 显然你会有数据库连接的文本日志 我能想到两大
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • 如何根据条件删除结果以计算平均值

    我有下面的架构 对其的快速解释是 鲍勃评分为 5 5 詹姆斯评分 1 5 梅西百货评分高达 5 5 逻辑 如果我是 A 请查找我屏蔽的所有人 查阅所有电影评论 任何留下电影评论且 personA 已屏蔽的人 请将其从计算中删除 计算电影的平
  • SQL 按计数排序

    如果我有一个表和这样的数据 ID Name Group 1 Apple A 2 Boy A 3 Cat B 4 Dog C 5 Elep C 6 Fish C 我希望根据 Group 的总和从小到大进行排序 例如 A 2条记录 B 1条记录

随机推荐