【问题标题】:sharding a database with hierarchical data structure使用分层数据结构对数据库进行分片
【发布时间】:2010-12-22 06:25:16
【问题描述】:

我正在使用 MySQL 来存储我的父子关系。数据在一个表中。

我没有任何问题查询;但是,该表的大小急剧增加。我想分片或使用一些技术来提高我的查询(和连接)的性能。我该怎么做?

【问题讨论】:

  • 您的查询速度慢还是只需要执行大量查询?您是否以最佳方式使用索引(据您所知)?
  • 假设数据库拆分可以基于语义字段。对于每个业务领域,该领域的选择很少。它很可能是客户的帐户 ID。

标签: database data-structures sharding hierarchical


【解决方案1】:

这篇文章中没有足够的信息来给你一个好的答案。 我们需要知道的第一件事是表结构是什么。 您是否定义了非聚集索引,或者它只是一个聚集索引。

您的应用程序使用了这个数据库,它对数据做了什么?

此外,您是在搜索名称字段还是特定日期?如果是这样,这些可能是索引类型的候选者。

要注意的第一件事是索引

【讨论】:

    【解决方案2】:

    最好使用专业的分片中间件,例如:Apache ShardingSphere

    它可以使用简单的方式通过SQL路由对数据库和表进行分片和重写,而无需跨数据库连接。 它可以使用复杂的方式来处理联合跨数据库与联合查询 由 Apache Calcite 提供支持。

    【讨论】:

      【解决方案3】:

      我认为,如果您的产品变得如此庞大,您将需要更高级的帮助。 dbShards 是一个很好的起点。他们将帮助您为数据设计分片策略,并且可以轻松地对任何需要它的表进行分片。如果你的一个表变得太大,分片不是一个糟糕的选择。我会检查 dbShards。可能适用于这种情况。

      【讨论】:

      • 链接看起来像广告。它可能被放弃/出售了吗?
      猜你喜欢
      • 2015-03-12
      • 2012-03-25
      • 2015-06-05
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多