代码之家  ›  专栏  ›  技术社区  ›  LordSuricato

SQL与NoSQL在大数据量情况下的性能对比

  •  4
  • LordSuricato  · 技术社区  · 7 年前

    基本方案

    Example schema

    “跟踪”表在未来12个月内可以达到100000000条记录。我们担心的是,对于每个访问我们家的用户来说,都必须咨询一下下面的所有照片是什么,并通过它们加入收集照片来展示。 在跟踪表中,不进行删除和更新,只进行插入。

    我已经执行了生成虚拟数据的测试 Spawner Data Generator

    问题:

    2-在这种情况下不应使用MongoDB,因为它非常依赖关系数据。我说得对吗?

    3-你有什么建议吗?

    老实说,我非常关心性能,尤其是公寓达到了数十亿的行

    Why You Should Never Use MongoDB - Sarah Mei :引起标题巨大轰动的有趣文章。我读了几篇关于那篇文章的观点,我越来越困惑了

    用于测试的服务器:

    第一:

    -AWS free tier与MariaDB。

    -CPU:赛扬J1900

    -RAM:4GB 1666mhz

    -软件:MariaDB

    -RAM:16GB 2133mhz

    -操作系统:Windows 10

    1 回复  |  直到 7 年前
        1
  •  5
  •   Bill Karwin    7 年前

    SQL是用来进行这样的查询的吗。。。?

    问什么?您没有显示任何查询。

    当您需要针对数百万行优化查询时,您必须非常具体地了解 正在优化的查询。您可以使用索引、分区或其他技术,但每种优化都会针对特定的查询进行优化

    在这种情况下不应使用MongoDB,因为它非常依赖关系数据。我说得对吗?

    MongoDB 3.2支持 $lookup 这有点像外部连接。但它不可能像SQL中的索引连接那样高效。

    你有什么建议吗?

    我建议根据您要处理的数据量适当调整服务器的大小。

    • 给他们更强大的CPU,可以执行更多并发线程(在您的情况下,顶级CPU仍然是一个4核CPU,HT仅用于8个线程)。毫不奇怪,您的普通CPU会被100个并发线程淹没。

    还计划更多地使用缓存。对大型数据集的查询将非常昂贵。最快的查询可能是您根本不需要执行的查询,因为结果已经在缓存中。您需要在应用程序级别进行架构设计,以减少SQL查询负载。