【问题标题】:Data Base for handle large data处理大数据的数据库
【发布时间】:2018-01-26 07:22:31
【问题描述】:

我们已经使用 MySQL、spring boot 和 Angular js 启动了一个新项目。最初,我们没有意识到我们的数据库会处理大数据。

表的数量不会很大(

估计那10个表的数据量会在一个月内增长到1200000条记录,我们不应该删除这些数据才能做各种报告。

需要有(只读)复制数据库作为备份/故障转移,并且可能用于在高峰时间卸载报告。

我对大型数据库没有第一手经验,所以我问那些拥有哪个数据库的数据库是这种情况下的最佳选择。因为我们已经完成了 100% 的编码和开发,但现在我们意识到了这一点。我怀疑 MYSQL 可能会处理大数据。我知道 Oracle 是安全的选择,如果 Mysql 具有类似的设置感兴趣。但它仅在 MySQL 中绑定我可以根据您的所有反馈使用任何数据库我可以接听电话。

开源数据库更可取,但我们也可以选择付费数据库。

【问题讨论】:

  • 我认为这是dba论坛的问题。

标签: mysql database


【解决方案1】:

处理大数据

MySQL 完全有能力处理这样的负载。事实上,它能够处理比您所说的更多的负载。您只需要创建正确类型的表格。你可以通过选择来做到这一点

  • 适合您用例的正确存储引擎
  • 正确的字符集
  • 列的最佳数据类型
  • 正确的索引策略 - 精心创建索引
  • 正确的分区策略(如果表中的数据超过千万条记录)

编辑:您还必须为您的用例选择正确的数据建模和规范化策略。大多数 OLTP 应用程序都需要某种程度的规范化。但是,如果您想对繁重的表进行分析和聚合,您应该拥有一个具有高度非规范化表以避免连接的数据仓库and/or 拥有一个面向列的数据库来支持此类查询。

MySQL 是开源的,并且拥有非常强大的社区支持,因此您会发现很多关于您面临的任何问题的文献。您还可以找到所有已提交的错误(已解决和未解决)here

就桌子的数量而言,确实没有上限。请参阅here,如果您使用 InnoDB 作为引擎,MySQL 允许 40 亿个表。

许多规模很大的公司都在一定程度上使用 MySQL。 Facebook 就是其中之一。

原生 JSON 支持

随着 JSON 作为事实上的数据交换格式在 Internet 上越来越受欢迎,MySQL 在 5.7 中也提供了原生 JSON 支持,因此现在您可以根据需要从 API 存储和查询 JSON。

HA 和复制

MySQL 复制有效!早些时候,MySQL 过去只支持协调复制,但现在它支持 GTID 复制,这使得维护和修复复制问题变得更加容易。市场上也有第三方复制器。例如,Continuent 的 Tungsten 是用 Java 编写的复制器,可以替代本地复制。它带有许多原生 MySQL 复制所不具备的配置选项。

【讨论】:

    【解决方案2】:

    我同意 MontyPython,MySql 可以做到,而且设计很关键。幸运的是,MySql 允许您根据需要灵活处理。

    我在日常报告中需要使用历史记录表,这些历史记录表在普通 MySql 中增长到超过十亿条记录,并且没有任何问题。

    我还使用MySql Merge 表来划分具有大行 (100KB+) 的表以加快处理速度。基本上将单个合并表文件大小保持在 30GB 以下。然而,该解决方案增加了每个客户端的打开文件数(在系统中)——在集群系统上可能是一个更大的问题。那个不是。

    也就是说,我想给荣誉奖:

    MariaDB - MySql,但来自 Facebook, Alibaba, Google, and more 的贡献。

    我已将大部分 MySql 社区版项目转移到 MariaDB 并且非常高兴。这是一个几乎透明的升级。

    他们提供了一个有趣的企业大数据分析 (MariaDB AX) 软件包,但根据您当前的要求,它可能有点矫枉过正,而标准社区版将满足您的需求。

    例如,这是一个关于如何设置可扩展集群 (Galera) 和添加 MaxScale 以实现高可用性的信息丰富的教程:

    https://mariadb.com/resources/blog/getting-started-mariadb-galera-and-mariadb-maxscale-centos

    另一个有趣的选项是Vitesse - 在 Youtube 开发,它允许通过(主要)基于驱动程序的解决方案来分片 mysql。它解决了需要访问大量数据并始终产生良好性能的问题。因此,它超越了高可用性,专注于一个解决方案,其中单个查询(即针对数百万行历史数据的报告)不会对需要执行的其他查询产生负面影响。

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      相关资源
      最近更新 更多