← 最新论文
💻 计算机科学

A Comparative Performance Evaluation of SQL and NoSQL Databases Under Different Indexing and Cache Conditions

本研究通过在不同的数据集大小、索引策略和缓存条件下对 MySQL 8.0.46 和 MongoDB 8.0.32 进行基准测试,揭示了 MongoDB 在批量写入方面表现出色,同时两者都从用于查找的索引中显著获益,最终表明数据库性能高度依赖于具体场景,而非其中一种模型在普遍意义上优于另一种。

原作者: Amir Khan, Sawaira Gull, Arooj Shahzadi

发布于 2026-11-13✓ Author reviewed ⓘ
📖 1 分钟阅读☕ 轻松阅读

原作者: Amir Khan, Sawaira Gull, Arooj Shahzadi

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在数字世界中,几乎每一个动作都会留下痕迹。一次购买、一次登录、一条发送的消息——每个事件都被存储在数据库中,一个巨大的电子文件柜,保存着现代生活的记忆。为了让这些系统平稳运行,工程师必须在两种主要的存储系统之间做出选择。一种被称为关系型(relational)的系统,将数据组织成严格的行和列,非常像传统的电子表格。另一种被称为 NoSQL 的系统,则将信息存储为灵活的、自包含的文档,其形状和大小可以各不相同。多年来,关于哪种系统更快或更好的争论一直在持续。然而,答案很少是简单的,因为速度完全取决于你要求系统做什么,以及它必须搜索多少数据。

最近的一项研究旨在通过受控实验而非理论来解决这个问题。研究人员 Amir Khan、Sawaira Gull 和 Arooj Shahzadi 在一台计算机上构建了一个测试场,以观察两种流行的系统——MySQL 和 MongoDB——在相同条件下的表现。他们不仅仅是在询问哪一个更快;他们还在询问当数据量从一小堆增长到一座大山时,速度是如何变化的,以及索引(帮助系统快速查找信息的专门捷径)的使用如何改变了结果。他们测试了三个特定的任务:将大量新数据倾倒进系统、根据特定名称查找单条记录,以及将许多记录分组以计算总和。

研究人员首先生成了合成交易记录,创建了包含一万、十万和一百万条条目的三个独立数据集。他们将这些记录加载到两个数据库系统中,并测量完成每项任务所需的时间。在第一个测试中,该测试涉及将所有数据一次性写入系统,基于文档的系统 MongoDB 表现得始终更快。在处理一百万条记录时,它完成任务大约用了十二点五秒,而关系型系统 MySQL 则用了近三十秒。无论数据集是小还是大,这种差异都同样存在,这表明对于纯粹的数据摄取而言,在这一特定设置下,基于文档的方法具有明显的优势。

第二个测试侧重于查找单条记录,类似于通过 ID 号查找特定客户。在这里,研究人员测量了在有无帮助的情况下查找记录所需的时间。在没有索引的情况下,系统必须扫描每一条记录来找到匹配项。随着数据增长到一百万条,这种搜索变得异常缓慢,两个系统都耗时超过半秒。然而,一旦研究人员添加了一个单字段索引——一个直接指向每个 ID 位置的简单列表——结果发生了戏剧性的变化。两个系统查找记录的时间都骤降至仅一毫秒出头。这种超过百分之九十九的缩减表明,对于简单的查找,数据库的类型远不如拥有一张引导搜索的优质地图重要。

第三个测试更为复杂,涉及过滤聚合。研究人员要求系统找到特定类别中的所有交易,按其状态进行分组,并计算总金额。这项任务更难,因为它不仅需要找到数据,还需要对其进行排序和计算。在这种情况下,结果并不统一。对于较小的数据集,关系型系统有时更快,但随着数据增长到一百万条,基于文档的系统则显著领先。文档系统完成了该任务,耗时约三百毫秒,而关系型系统则耗时超过一秒。

或许最令人惊讶的发现出现在第三个测试处理最大数据集时。当研究人员使用类别字段上的索引来加速关系型系统时,该任务实际上比没有索引时变得更慢了。使用索引时,系统耗时超过一秒,而没有索引时约为七百毫秒。这个反直觉的结果并非错误;研究人员独立重复了测试,并确认索引确实在这种特定配置下造成了延迟。看来对于这种特定类型的复杂计算,使用索引带来的开销超过了它的收益,这种细微差别是简单的“哪一个更快”的结论所无法捕捉到的。

研究还检查了系统在处于“热”状态(即最近处理过类似请求且数据已准备在内存中)时的行为。在这种条件下,两个系统都变得更快了,但提升程度各不相同。文档系统在聚合速度方面看到了显著提升,而关系型系统的增益则较为温和。这些发现强化了性能并非软件本身的固定属性,而是数据规模、查询类型、索引的存在以及系统当前内存状态之间相互作用的流动结果。

最终,研究得出结论:并没有普适的赢家。在这两种数据库模型之间做出选择不能仅凭一次速度测试。如果目标是快速摄取海量新数据,基于文档的系统显示出了明显的优势。如果目标是检索单条记录,只要有合适的索引,两个系统表现同样出色。然而,对于涉及大量数据的复杂计算,性能可能会根据数据的结构和索引方式而发生波动。这项研究提醒我们,在数据世界中,合适的工具完全取决于具体的工作内容,而最有效的路径往往不是通过选择一个品牌,而是通过理解工作的独特形态。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →