【问题标题】:MYSQL - Splitting a very large Table - Advice PleaseMYSQL - 拆分一个非常大的表 - 请提供建议
【发布时间】:2011-06-26 11:37:50
【问题描述】:

我有一个 InnoDB 表,它有大约 17 个规范化列和大约 600 万条记录。表的大小约为 15GB。表中的查询开始花费太长时间,有时会超时/崩溃。我正在考虑拆分桌子,但很困惑哪种方式会更好。我是否将列拆分为相同/不同数据库上的不同表?或者我是否将表的行拆分到另一个数据库中,但是我怎么知道哪一行在数据库中的位置。

有人提到了一些关于 Map/Reduce 的事情,但让我更加困惑。对此的任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 需要查询和表架构示例。

标签: mysql large-data


【解决方案1】:

拆分表以加快查询速度不是我愿意采取的步骤。我会首先尝试看看您是否无法更改查询或添加索引以使其更快。我建议在您的问题中添加查询和表格,以便我们提供更好的答案。

如果您已经优化了查询和索引,您仍然可以尝试partitioning。这在物理上将您的表拆分为例如不同的硬盘,但它在逻辑上保持一个表。这意味着您无需更改查询,同时仍能提高查询速度。

【讨论】:

  • 感谢您的回复。索引和查询已经优化。数据也被标准化了,但我们的数据太多了。将按照您的建议调查分区。希望这会有所帮助。
  • @Mercury 终端。如果情况如此糟糕,您还可以尝试对表进行非规范化或设置专门定制的表,以使您的查询更快,并通过规范化表上的触发器使用数据更新它们。见data warehousing。当然,如果出现问题,您将面临数据不同步的风险。
猜你喜欢
  • 2015-12-24
  • 1970-01-01
  • 2017-05-03
  • 2021-03-16
  • 2012-12-19
  • 2011-12-24
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多